Cocos2d-x版本:3.17.2
若直接在AppDelegate.cpp设置中文标题,生成的窗口会出现乱码情况。
原因:visual studio 默认编码为GBK 格式,而cocos2d-x引擎默认编码为UTF-8
我们只需要在AppDelegate.cpp文件中全局声明如下函数:
std::string GBKToUTF8(const std::string& strGBK)
{
std::string strOutUTF8 = "";
WCHAR* str1;
int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);
str1 = new WCHAR[n];
MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, str1, n);
n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);
char* str2 = new char[n];
WideCharToMultiByte(CP_UTF8, 0, str1, -1, str2, n, NULL, NULL);
strOutUTF8 = str2;
delete[]str1;
str1 = NULL;
delete[]str2;
str2 = NULL;
return strOutUTF8;
}
接着以中文标题为参数传入,并调用该函数即可。
glview = GLViewImpl::createWithRect(GBKToUTF8("计算机游戏开发"), cocos2d::Rect(0, 0, mediumResolutionSize.width, mediumResolutionSize.height));
若需要在Cocos2d-x中显示中文文本,可见下篇:Cocos2d-x中文内容设置