首页 > 代码库 > cocos2dx学习笔记(4)——VS2010中的中文乱码问题
cocos2dx学习笔记(4)——VS2010中的中文乱码问题
当你想使用中文时,你是否有这样的一个困惑。
把样例中的HelloWorld改成中文的 “你好,世界!”。
然后编译运行,发现居然是个乱码!!!
因为cocos2dx中使用的是UTF-8字符集,而VS中确实ANSI。
所以我们需要对其进行字符集转换。
然后纵里寻它求百度,终于找到了解决方案。
一个函数搞定!
#include "cocos2d.h" char* toUTF(const char* strGB2312) { int iLen = MultiByteToWideChar(CP_ACP, 0, strGB2312, -1, NULL, 0); wchar_t* wstr = new wchar_t[iLen+1]; memset(wstr, 0, iLen+1); MultiByteToWideChar(CP_ACP, 0, strGB2312, -1, wstr, iLen); iLen = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL); char* strUTF8 = new char[iLen+1]; memset(strUTF8, 0, iLen+1); WideCharToMultiByte(CP_UTF8, 0, wstr, -1, strUTF8, iLen, NULL, NULL); if(wstr) delete[] wstr; return strUTF8; }
为了方便使用,你可以把上面的函数放到一个.h文件里面去,然后要使用的话,只要#include就可以了。
至于函数中一些变量:
MultiByteToWideChar , WideCharToMultiByte
CP_ACP , CP_UTF8
有兴趣的自行百度。不过不了解也没关系,反正只要会调用上面的函数就可以了。。。
本文出自 “夏天的风” 博客,请务必保留此出处http://shahdza.blog.51cto.com/2410787/1406960
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。