开发环境: VS2012 coco2d-x 3.0 alpha1 windows8.1
通过 LabelTTF 标签设置中文时出现乱码。
设置方法:
label->setString(“按下按钮”);
在界面上显示为乱码。

开发环境: VS2012 coco2d-x 3.0 alpha1 windows8.1
通过 LabelTTF 标签设置中文时出现乱码。
设置方法:
label->setString(“按下按钮”);
在界面上显示为乱码。

有两个办法:一个是把你的文件用UTF-8方式保存,二,把中文串放到一个UTF-8的文件中,如XML中,然后读取,再显示
通过转换函数可以显示中文字符:
转换函数如下:
//! convert from wstring to UTF8 using self-coding-converting
void WStrToUTF8(std::string& dest, const std::wstring& src){
dest.clear();
for (size_t i = 0; i < src.size(); i++){
wchar_t w = src i ];
if (w <= 0x7f)
dest.push_back((char)w);
else if (w <= 0x7ff)
{
dest.push_back(0xc0 | ((w >> 6)& 0x1f));
dest.push_back(0x80| (w & 0x3f));
}
else if (w <= 0xffff)
{
dest.push_back(0xe0 | ((w >> 12)& 0x0f));
dest.push_back(0x80| ((w >> 6) & 0x3f));
dest.push_back(0x80| (w & 0x3f));
}
else if (sizeof(wchar_t) > 2 && w <= 0x10ffff)
{
dest.push_back(0xf0 | ((w >> 18)& 0x07)); // wchar_t 4-bytes situation
dest.push_back(0x80| ((w >> 12) & 0x3f));
dest.push_back(0x80| ((w >> 6) & 0x3f));
dest.push_back(0x80| (w & 0x3f));
}
else
dest.push_back('?');
}
}
//! simple warpper
std::string WStrToUTF8(const std::wstring& str)
{
std::string result;
WStrToUTF8(result, str);
return result;
}
```
代码来自于【tkokof1】博客【http://blog.csdn.net/tkokof1/article/details/7426706】
编码问题,推荐用XML方法解决