在lua中使用CCMessageBox
local msg = “我的天啊!”;
CCMessageBox(“abdcd”, msg);
中文将会乱码
但是使用其它的label之类的使用setText却不会乱码……
使用print也不会乱码……
文件编码使用的是UTF-8
Cocos2d-X版本是2.2.3
在lua中使用CCMessageBox
local msg = “我的天啊!”;
CCMessageBox(“abdcd”, msg);
中文将会乱码
但是使用其它的label之类的使用setText却不会乱码……
使用print也不会乱码……
文件编码使用的是UTF-8
Cocos2d-X版本是2.2.3
C版本没有这种情况发生
对,刚刚试了,使用C的话不会有这个问题……以前使用2.2.0的时候,lua使用ccmessagebox不会造成中文乱码,现在使用2.2.3倒是会有这个问题……
自己顶一个,希望有人可以在lua中测试告诉我结果
char* UTF8ToGB2312(const char* pStrUTF8)
{
// 先转成宽字符
int nStrLen = MultiByteToWideChar(CP_UTF8, 0, pStrUTF8, -1, NULL, 0);
wchar_t* pWStr = new wchar_t;
memset(pWStr, 0, nStrLen + 1);
MultiByteToWideChar(CP_UTF8, 0, pStrUTF8, -1, pWStr, nStrLen);
// 再转成GB2312
nStrLen = WideCharToMultiByte(CP_ACP, 0, pWStr, -1, NULL, 0, NULL, NULL);
char* pStr = new char;
memset(pStr, 0, nStrLen + 1);
WideCharToMultiByte(CP_ACP, 0, pWStr, -1, pStr, nStrLen, NULL, NULL);
if(pWStr)
{
delete] pWStr;
}
return pStr;
}
void CCMessageBox(const char * pszMsg, const char * pszTitle)
{
MessageBoxA(NULL, UTF8ToGB2312(pszMsg), UTF8ToGB2312(pszTitle), MB_OK);
}
这样就好了
那为什么在C里面没事