Cocos移植到Android的一些问题-中文乱码问题

Android平台版本和设备碎片化很严重,因此从Win32平台移植到Android平台会有很多问题,下面是我们归纳的从Win32平台移植到Android平台遇到的一些问题。
在Android平台中文乱码并不是一个问题,或者说在Android平台是不应该出现中文乱码的。这个问题究其根本是因为我们在Windows下采用开发Android应用导致的问题。默认情况下Windows中文环境是采用GBK编码,源程序文件HelloWorldScene.cpp编码默认也是GBK,如果源程序代码中如果有中文输入,例如下面的代码:

[html] view plaincopy

  1. void HelloWorld::OnClickMenu1(Object* pSender)  

  2. {  

  3.     NoteDAO::initDB();  

  4.     NoteDAO::create("2008-08-16 10:01:02", "初始化数据。");  

  5. }  

  6. void HelloWorld::OnClickMenu2(Object* pSender)  

  7. {  

  8.     string currentTime = MyUtility::getCurrentTime();  

  9.     log("%s",currentTime.c_str());  

  10.     NoteDAO::create(currentTime, "欢迎使用MyNote。");  

  11. }  



这样程序编译之后的中文编码还是GBK,由于Android平台采用的编码是UTF-8,当它们在Android平台通过日志函数或标签等控件输出时候就会乱码。
解决方法很简单,我们只需要把HelloWorldScene.cpp文件另存为UTF-8就可以了,用记事本等文本编辑工具打然后另存为UTF-8就可以,如果是在Visual Studio工具中可以选择菜单文件→高级保存选项,在弹出如图所示对话框,选择编码为Unicode(UTF-8带签名),然后点击确定按钮保存。


高级保存选项

我们只需要对有中文字符的文件(包括h和cpp文件),采用上面的另存为UTF-8字符集就可以了,其它的文件可以不用考虑。需要记住的是在Android和iOS平台UTF-8在字符集的默认标准。


更多内容请关注国内第一本Cocos2d-x 3.2版本图书《Cocos2d-x实战:C++卷》

本书交流讨论网站:http://www.cocoagame.net
更多精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com

欢迎加入Cocos2d-x技术讨论群:257760386

欢迎关注智捷iOS课堂微信公共平台


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。