win32下,cocos2d-x中文乱码解决方法

最近在win32下用cocos2d-x搞了一个小游戏,其中有一个问答界面,问题和答案显然都有可能是中文,但由于cocos2d-x在win32下不支持汉字,所以需要自己手动在代码中增加一个字符编码转换函数。
int GBKToUTF8(std::string & gbkStr, const char* toCode, const char* fromCode){ iconv_t iconvH; iconvH = iconv_open(fromCode, toCode); if (iconvH == 0) { return -1; } const char* strChar = gbkStr.c_str(); const char** pin = &strChar; size_t strLength = gbkStr.length(); char* outbuf = (char*) malloc(strLength4); char pBuff = outbuf; memset( outbuf, 0, strLength4); size_t outLength = strLength4; if (-1 == iconv(iconvH, pin, &strLength, &outbuf, &outLength)) { iconv_close(iconvH); return -1; } gbkStr = pBuff; iconv_close(iconvH); return 0;}
调用方法:GBKToUTF8(str对象, “gb2312”, “utf-8”); PS: 如果汉字都是保存在XML中的话,用CCUserDefault读取出来的字符串可以直接显示中文.(因为xml一般都是以uft-8编码保存, 在网上看文章还有种比较蛋疼的方法, 就是用编辑器将代码cpp文件转换成utf-8格式保存, 这样就不会显示乱码了.)

顶下!!:lol

{:soso_e179:}顶+MARK
我就是把文件换成UTF8那种方式。。。。

把文件转UTF-8是不错的方式。iconv主要还是运行时,做转码用比较好吧

嗯,感觉转码比较方便

顶啊 不过在android 编译时 找不到iconv.h 网上查解决办法 很麻烦的样子

win32 下是不是应该要包含什么头文件,直接编译通不过。:smiley:

{:soso_e179:}顶+MARK
我就是把文件换成UTF8那种方式。。。。