Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法

做个打飞机的游戏,由于版本太新,网上基本没有教教程,我的版本是cocos2d-x 3.1.1的,今天遇到cocos2dx中中文乱码的问题。无奈只好Google百度寻求答案,明白了这个问题的缘由。因为cocos2d-x内部是以utf8处理文本的,而VS直接输入时文本编码为GBK,如果添加L标志,则为Unicode编码。

解决这个问题有三种办法:

  1. 将源代码文件保存为utf8编码,不过由于编译器的问题,这种方式会导致很多无法预测的问题
  2. 将字符串用utf8编码集中存到一文件中,然后用代码读取这些字符串来使用,这种办法还能很好的支持多语言版本
  3. 使用字符串时,先将其转换为utf8编码

我最终使用了第三种方法,第一种撇开不说,第二种实现起来比较麻烦,第三种则要方便很多。

//加这个函数,G2U,我自己写的函数名。

glview=GLView::create(G2U("飞机大战"));

//然后把这个函数加上

char* AppDelegate::G2U(const char* gb2312)

{

int len = MultiByteToWideChar(CP_ACP, 0, gb2312, -1, NULL, 0);

wchar_t* wstr = new wchar_t[len+1];

memset(wstr, 0, len+1);

MultiByteToWideChar(CP_ACP, 0, gb2312, -1, wstr, len);

len = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL);

char* str = new char[len+1];

memset(str, 0, len+1);

WideCharToMultiByte(CP_UTF8, 0, wstr, -1, str, len, NULL, NULL);

if(wstr) delete[] wstr;

return str;

}

//然后在头文件里面加上函数声明就可以了

char*  G2U(const char* gb2312) ;

不懂的可以加我的QQ群: 239982941(一起学习cocos2dx

Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法,布布扣,bubuko.com

时间: 2024-10-25 09:19:22

Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法的相关文章

cocos2dx学习笔记(4)——VS2010中的中文乱码问题

当你想使用中文时,你是否有这样的一个困惑. 把样例中的HelloWorld改成中文的 "你好,世界!". 然后编译运行,发现居然是个乱码!!! 因为cocos2dx中使用的是UTF-8字符集,而VS中确实ANSI. 所以我们需要对其进行字符集转换. 然后纵里寻它求百度,终于找到了解决方案. 一个函数搞定! #include "cocos2d.h" char* toUTF(const char* strGB2312) { int iLen = MultiByteToW

一步一步学习androidNDK编程(log调试和解决中文乱码)

上一篇说到了androidNDK编程的helloworld,今天,学习了如何在ndk开发时候,在c代码当中,向java代码那样,打印出log 1. 我们需要引入头文件: #include <android/log.h> 2.定义打印的tag,这里相当于java中的static final类型 #define LOG_TAG "onEvent" 3.定义宏,相当于声明一个方法: #define LOGD(fmt, args...) __android_log_print(AN

php学习日志(5)-解决Windows Live Writer错误:WindowsLive.Writer.CoreServices.HttpRequestHelper的类型初始值设定发生异常

以前用Windows Live Writer写日志都好好的,前几天用写完日志,点击发布,突然弹出意外错误:"WindowsLive.Writer.CoreServices.HttpRequestHelper"的类型初始值设定发生异常.不知道是什么问题,百度了好久也没有找到相似的问题及解决方法,于是卸载了重新装,还是出现同样的问题,如图: 今天看到一篇博客终于解决了.解决办法为: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Ls

使用notepad++学习python爬虫,print网页中文乱码问题

今天学习使用python爬虫的时候发现爬到的网页中文会乱码,一直网上搜索解决办法,一个一个试验过去,发现还是乱码,然后我就开始使用其它方法测试,用python自带的编辑器打开是正常的,发现是notepad++这款编辑器的问题,我更改了编码方式为utf-8无bom,尝试了所有设置,都没有用,新建,打开文件默认一直都是ansi格式,pynpp这款快捷打开.py格式的插件运行一直乱码,虽然没有发现问题的根源,但是知道编码是没有问题的,主要是这款编辑器出现的一些小问题 不过百度过后发现如果是乱码问题,最

【Linux/Ubuntu学习 10】unbuntu 下 eclipse 中文乱码的解决

[email protected]:~$ gedit /var/lib/locales/supported.d/local 添加: zh_CN.GBK GBK zh_CN.GB2312 GB2312 终端执行命令: sudo dpkg-reconfigure --force localesGenerating locales...  en_AG.UTF-8... done  en_AU.UTF-8... done  en_BW.UTF-8... done  en_CA.UTF-8... done

性能测试学习第三天-----loadrunner接口测试&amp;中文乱码处理

loadrunner 接口测试:   get.post(3种参数格式).cookie及token处理.加密接口.webservice.socket.文件上传接口.文件下载接口     &  中文乱码处理 1.get请求 Action() { //开始事务--get请求 lr_start_transaction("get"); //关联函数 获取接口返回信息 web_reg_save_param("msg", "LB=message\":\

[原创]java WEB学习笔记17:关于中文乱码的问题 和 tomcat在eclipse中起动成功,主页却打不开

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

JSP的学习(4)——中文乱码的解决

本篇将以JSP页面中可能存在的中文乱码问题进行分析和解决. 中文乱码的问题一直是国人在编程过程中的一大头疼问题,这点上在JSP.Servlet或Tomcat上随处可见.比如我们在写一个Servlet时,经常要使用响应对象Response来设置使用的编码表或者给浏览器输出的响应中的响应头设置某个编码表,如在之前博客<Servlet的学习之Response响应对象(1)> 中介绍的一样. 本篇主要以上一篇<JSP的学习(3)——语法知识二之page指令>中page指令的最后部分的两个属

Cocos2d-x 3.1.1 学习日志11--一Windows下Android环境搭建(一定对你有用的!!)

安装步骤::(多么痛的领悟!!) 1. 配置JDK JDK下载地址: 设置环境变量: JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_21 CLASSPATH=.;%JAVA_HOME%\lib; Path增加%JAVA_HOME%\bin; 设置完后打开cmd,输入java -version 如果出现下面提示,表明环境变量设置成功: C:\Users\arlin>java -version java version "1.7.0_21&quo