加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[cocos2d-x] --- 完美解决中文乱码

发布时间:2020-12-14 19:09:45 所属栏目:百科 来源:网络整理
导读:一介绍 最近由于各种各样的原因,好长时间没有学习cocos2d-x了。突然有种害怕的感觉,这样下去,以前学的关于cocos2d-x的一点皮毛会彻底忘记的,下次再学,估计又得重头开始了。所以,还是要平时多多使用吧,持之以恒最重要了... 由于在cocos2d-x中直接使用

一介绍

最近由于各种各样的原因,好长时间没有学习cocos2d-x了。突然有种害怕的感觉,这样下去,以前学的关于cocos2d-x的一点皮毛会彻底忘记的,下次再学,估计又得重头开始了。所以,还是要平时多多使用吧,持之以恒最重要了...

由于在cocos2d-x中直接使用中文会出现乱码,谁让cocos2d-x是由cocos2d而来,而cocos2d这东西是老外写的呢?通常解决中文乱码有两种方法:

(1)使用iconv库,cocos2d-x中提供了这个库,但是只是在win32平台,当程序移植到Android等平台时,需要自己下载iconv库编译。

(2)将中文字符串写到XML文件中(注意XML文件格式保存为UTF-8),然后解析XML文件,格式可以仿照Android中的strings.xml,而且这种方法能方便以后的国际化。

通过比较,可以很容易的发现第二种方法更好,那么下面就介绍第二种方法,让我们能在cocos2d-x程序中使用中文,彻底解决中文乱码问题。


二实现
1新建XML文件,按照一定的格式,输入相应要显示的中文,最后一定需要使用UTF-8格式保存文件

[html] view plain copy print ?
  1. <dict>
  2. key>Hello</>
  3. string>你好!>Info>我是hahaya。>



2代码实现

[cpp] ?
    /**在cocos2d-x中使用中文**/
  1. //利用CCDictionary来读取xml
  2. CCDictionary*strings=CCDictionary::createWithContentsOfFile("strings.xml");
  3. //读取Hello键中的值objectForKey根据key,获取对应的string
  4. constchar*hello=((CCString*)strings->objectForKey("Hello"))->m_sString.c_str();
  5. //读取Info键中的值
  6. char*info=((CCString*)strings->objectForKey("Info"))->m_sString.c_str();
  7. //显示
  8. CCLabelTTF*labelHello=CCLabelTTF::create(hello,"Arial",24);
  9. labelHello->setPosition(ccp(size.width/2,size.height-50));
  10. this->addChild(labelHello,1);
  11. CCLabelTTF*labelInfo=CCLabelTTF::create(info,30);
  12. labelInfo->setPosition(ccp(size.width/2,size.height-100));
  13. this->addChild(labelInfo,1);


3程序运行效果

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读