求助关于cocos2d-x 3.6中文显示不出来的问题

cocos2d-x 为最新版。

代码如下


TTFConfig config1("fonts/simheis.ttf", 20);
auto strings = FileUtils::getInstance()->getValueMapFromFile("soul.xml");
std::string miaoshu = strings"miaoshu"].asString();
auto labelts = Label::createWithTTF(config1, miaoshu, TextHAlignment::LEFT);
labelts->setTextColor(Color4B(255, 255, 255, 255));
labelts->setPosition(Point(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2));
labelts->setAnchorPoint(Point::ZERO);
this->addChild(labelts, 20);

simheis.ttf是从window里拷过来的。
soul.xml如下


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>miaoshu</key>
  <string>感受感受</string>
</dict>
</plist>

后来经过测试发现,改成数字和英文也不行。

另外一种方法


auto label = LabelBMFont::create("当前位置:","res/wq.fnt");
label->setAnchorPoint(Vec2(0.5, 0.5));
label->setPosition(label->getContentSize().width, visibleSize.height - label->getContentSize().height);
this->addChild(label);

这个是自己用BMFont生成的png+fnt文件。也不行

直接


auto label = Label::createWithTTF("now 当前位置:", "fonts/simheis.ttf", 32);

更是什么都不显示。
看了下文件的编码。是“系统默认”。windows8系统。
我以为是utf8的问题。可是把所有文件都换成了utf8无bom,也是不行

跪求帮助


auto label2 = Label::createWithTTF("123123123", "fonts/simheis.ttf", 24);

这样是可以显示数字的。就是中文不行

解决了。记录一下


auto chnString = Dictionary::createWithContentsOfFile("soul.xml");
auto username = ((CCString*)chnString->objectForKey("username"))->_string.c_str();

auto ll = LabelTTF::create(username, "Arial", 24);
ll->setPosition(Point(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2 + 100));
this->addChild(ll, 20);

soul.xml代码如下


 <dict>  
    <key>language</key>  
    <string>打发斯蒂芬</string>  
    <key>username</key>  
    <string>舒服啥地方</string>  
    <key>website</key>  
    <string>啥地方时过分的话</string>  
</dict>