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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cocos移植到Android的一些问题-中文乱码问题相关的知识,希望对你有一定的参考价值。

android平台版本号和设备碎片化非常严重。因此从Win32平台移植到Android平台会有非常多问题,以下是我们归纳的从Win32平台移植到Android平台遇到的一些问题。
在Android平台中文乱码并非一个问题。或者说在Android平台是不应该出现中文乱码的。

这个问题究其根本是由于我们在Windows下採用开发Android应用导致的问题。默认情况下Windows中文环境是採用GBK编码,源程序文件HelloWorldScene.cpp编码默认也是GBK,假设源程序代码中假设有中文输入。比如以下的代码:

void HelloWorld::OnClickMenu1(Object* pSender)
{
	NoteDAO::initDB();
	NoteDAO::create("2008-08-16 10:01:02", "初始化数据。

"); } void HelloWorld::OnClickMenu2(Object* pSender) { string currentTime = MyUtility::getCurrentTime(); log("%s",currentTime.c_str()); NoteDAO::create(currentTime, "欢迎使用MyNote。"); }



这样程序编译之后的中文编码还是GBK,因为Android平台採用的编码是UTF-8,当它们在Android平台通过日志函数或标签等控件输出时候就会乱码。
解决方法非常easy,我们仅仅须要把HelloWorldScene.cpp文件另存为UTF-8就能够了。用记事本等文本编辑工具打然后另存为UTF-8就能够,假设是在Visual Studio工具中能够选择菜单文件→高级保存选项,在弹出如图所看到的对话框,选择编码为Unicode(UTF-8带签名)。然后点击确定button保存。
技术分享

高级保存选项

我们仅仅须要对有中文字符的文件(包含h和cpp文件),採用上面的另存为UTF-8字符集就能够了。其它的文件能够不用考虑。须要记住的是在Android和ios平台UTF-8在字符集的默认标准。


很多其它内容请关注最新Cocos图书《Cocos2d-x实战 C++卷》
本书交流讨论站点:http://www.cocoagame.net
很多其它精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com
欢迎增加Cocos2d-x技术讨论群:257760386


《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:

京东:http://item.jd.com/11584534.html

亚马逊:http://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU

当当:http://product.dangdang.com/23606265.html

互动出版网:http://product.china-pub.com/3770734

《Cocos2d-x实战 C++卷》源代码及样章下载地址:

源代码下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1 

样章下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1

欢迎关注智捷iOS课堂微信公共平台
技术分享

以上是关于Cocos移植到Android的一些问题-中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

Part 22:Cocos2d-x开发实战-移植-从Win32到Android-关东升-专题视频课程

Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

cocos2d-x 移植到android中编译的一些问题:fatal error: Box2D/Box2D.h: No such file or directory"

Cocos2dx开发游戏移植到Android平台

Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)

基于Cocos2d-x-1.0.1的飞机大战游戏迁移到Cocos2d-x-3.0版本,并移植到Android平台成功运行