Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法
做个打飞机的游戏,由于版本号太新,网上基本没有教教程,我的版本号是cocos2d-x 3.1.1的。今天遇到cocos2dx中中文乱码的问题。无奈仅仅好Google百度寻求答案,明确了这个问题的缘由。由于cocos2d-x内部是以utf8处理文本的,而VS直接输入时文本编码为GBK。假设加入L标志,则为Unicode编码。
解决问题有三种办法:
将源码文件保存为utf8编码,只是因为编译器的问题,这样的方式会导致非常多无法预測的问题
将字符串用utf8编码集中存到一文件里,然后用代码读取这些字符串来使用,这样的办法还能非常好的支持多语言版本号
使用字符串时。先将其转换为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) ;
本人cocos2dx
2.x和3.x的源代码淘宝地址(欢迎大家光顾):https://shop141567464.taobao.com/?
spm=a313o.7775905.1998679131.d0011.aYDdAj
不懂的能够加我的QQ群: 239982941(一起学习cocos2dx)
Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法的更多相关文章
- php学习日志(5)-解决Windows Live Writer错误:WindowsLive.Writer.CoreServices.HttpRequestHelper的类型初始值设定发生异常
以前用Windows Live Writer写日志都好好的,前几天用写完日志,点击发布,突然弹出意外错误:“WindowsLive.Writer.CoreServices.HttpRequestHel ...
- vim学习日志(5):vim下wimrc的配置,解决中文乱码问题
解决linux下vim乱码的情况:(修改vimrc的内容) 全局的情况下:即所有用户都能用这个配置 文件地址:/etc/vimrc 在文件中添加: ,ucs-bom,gb18030,gbk,gb231 ...
- 使用notepad++学习python爬虫,print网页中文乱码问题
今天学习使用python爬虫的时候发现爬到的网页中文会乱码,一直网上搜索解决办法,一个一个试验过去,发现还是乱码,然后我就开始使用其它方法测试,用python自带的编辑器打开是正常的,发现是notep ...
- 【Spring学习笔记-MVC-16】Spring MVC之重定向-解决中文乱码
概述 spring MVC框架controller间跳转,需重定向,主要有如下三种: 不带参数跳转:形如:http://localhost:8080/SpringMVCTest/test/myRedi ...
- 【Linux/Ubuntu学习 10】unbuntu 下 eclipse 中文乱码的解决
wangdd@wdd-pc:~$ gedit /var/lib/locales/supported.d/local 添加: zh_CN.GBK GBK zh_CN.GB2312 GB2312 终端执行 ...
- Mysql学习总结(34)——Mysql 彻底解决中文乱码的问题
mysql 中常常出现对中文支持不友好的情况 常见的错误 "Illegal mix of collations for operation" 下面我们规整一下 mysql 数据库中 ...
- 性能测试学习第三天-----loadrunner接口测试&中文乱码处理
loadrunner 接口测试: get.post(3种参数格式).cookie及token处理.加密接口.webservice.socket.文件上传接口.文件下载接口 & 中 ...
- Web jsp开发学习——dbcp jsp连接MySQL出现中文乱码解决
开发过程中,通过dbcp.properties连接MySQL数据库,向数据库中插入中文字符时,出现乱码情况. 通过查阅资料,发现出现乱码的原因:MySQL数据库使用的是UTF-8编码,而dbcp.pr ...
- cocos2d-x实战 C++卷 学习笔记--第4章 win32平台下中文乱码问题
前言: 将GBK编码的字符串转为UTF-8编码.(通俗点说就是解决中文乱码问题) 简要介绍: 在Win32平台下通过 log 输出中文字符时,会出现中文乱码问题.同样的代码在 ios 和 Androi ...
随机推荐
- VS2013发布web项目到IIS上遇到的问题总结
vs2010发布网站到本地IIS的步骤 http://blog.csdn.net/cx_wzp/article/details/8805365 问题一:HTTP 错误 403.14 - Forbid ...
- STM32启动过程--启动文件--分析
一.概述 1.说明 每一款芯片的启动文件都值得去研究,因为它可是你的程序跑的最初一段路,不可以不知道.通过了解启动文件,我们可以体会到处理器的架构.指令集.中断向量安排等内容,是非常值得玩味的. ST ...
- C语言面向对象的简便方法
都知道C语言是面向过程的,但是现在软件规模越来越大,通过面向对象的方式可以简化开发.业余时间想了个简单的方法,在C中使用一部分面向对象的基本功能.由于C语言自身的限制,并不完善,只能将就用,聊胜于无, ...
- Spring实战——无需一行xml配置实现自动化注入
已经想不起来上一次买技术相关的书是什么时候了,一直以来都习惯性的下载一份电子档看看.显然,如果不是基于强烈的需求或强大的动力鞭策下,大部分的书籍也都只是蜻蜓点水,浮光掠影. 就像有位同事说的一样,有些 ...
- python中的单下划线和双下划线意义和作用
Python中并没有真正意义上的“私有”,类的属性的的可见性取决于属性的名字(这里的属性包括了函数).例如,以单下划线开头的属性(例如_spam),应被当成API中非公有的部分(但是注意,它们仍然可以 ...
- apache asp.net
http://www.apache.org/dist/httpd/ http://server.it168.com/server/2005-10-11/20051011027201.shtml htt ...
- File上传
http://wenku.baidu.com/link?url=bsufrjDQztceWCUw2gqFeYkL1_95t9yIyV1LfHVYL9URAlpWSK_ALO1bAWSlBdnPXYXE ...
- 李洪强iOS开发之-cocopods安装
- 李洪强iOS开发Swift篇—04_运算符
李洪强iOS开发Swift篇—04_运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运 ...
- SFTP文件上传与下载
SFTP是对ftp进行加密的一种文件协议. 首先是先引入:jsch-0.1.42-sources.jar与jsch-0.1.42.jar包 SFTP文件上传与下载. import java.io.Fi ...