测试显示 中文或者 其它平台已经判断显示的 可以借用这偷懒的方法
在cocos-x 3.2,vs2012 环境中运行的
- inline std::string WideByte2UTF8(const wstring& text)
- {
- int asciisize = ::WideCharToMultiByte(CP_UTF8,text.c_str(),text.size(),NULL,NULL);
- if (asciisize == ERROR_NO_UNICODE_TRANSLATION || asciisize == 0)
- {
- return string();
- }
- char* resultstring = new char[asciisize];
- int convresult = ::WideCharToMultiByte(CP_UTF8,resultstring,asciisize,NULL);
- if (convresult != asciisize)
- {
- return string();
- }
- std::string buffer(resultstring,convresult);
- delete[] resultstring;
- return buffer;
- }
在cpp中调用
- std::string str = "";
- str = WideByte2UTF8(L"你好世界");
- Label* label = Label::createWithSystemFont(str.c_str(),"Arial",20);
- label->setColor(Color3B::RED);
- label->setPosition(200,200);
- this->addChild(label);