做个打飞机的游戏,由于版本号太新,网上基本没有教教程,我的版本号是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) ;

本人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解决中文乱码问题的几种办法的更多相关文章

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

    以前用Windows Live Writer写日志都好好的,前几天用写完日志,点击发布,突然弹出意外错误:“WindowsLive.Writer.CoreServices.HttpRequestHel ...

  2. vim学习日志(5):vim下wimrc的配置,解决中文乱码问题

    解决linux下vim乱码的情况:(修改vimrc的内容) 全局的情况下:即所有用户都能用这个配置 文件地址:/etc/vimrc 在文件中添加: ,ucs-bom,gb18030,gbk,gb231 ...

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

    今天学习使用python爬虫的时候发现爬到的网页中文会乱码,一直网上搜索解决办法,一个一个试验过去,发现还是乱码,然后我就开始使用其它方法测试,用python自带的编辑器打开是正常的,发现是notep ...

  4. 【Spring学习笔记-MVC-16】Spring MVC之重定向-解决中文乱码

    概述 spring MVC框架controller间跳转,需重定向,主要有如下三种: 不带参数跳转:形如:http://localhost:8080/SpringMVCTest/test/myRedi ...

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

    wangdd@wdd-pc:~$ gedit /var/lib/locales/supported.d/local 添加: zh_CN.GBK GBK zh_CN.GB2312 GB2312 终端执行 ...

  6. Mysql学习总结(34)——Mysql 彻底解决中文乱码的问题

    mysql 中常常出现对中文支持不友好的情况 常见的错误 "Illegal mix of collations for operation" 下面我们规整一下 mysql 数据库中 ...

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

    loadrunner 接口测试:   get.post(3种参数格式).cookie及token处理.加密接口.webservice.socket.文件上传接口.文件下载接口     &  中 ...

  8. Web jsp开发学习——dbcp jsp连接MySQL出现中文乱码解决

    开发过程中,通过dbcp.properties连接MySQL数据库,向数据库中插入中文字符时,出现乱码情况. 通过查阅资料,发现出现乱码的原因:MySQL数据库使用的是UTF-8编码,而dbcp.pr ...

  9. cocos2d-x实战 C++卷 学习笔记--第4章 win32平台下中文乱码问题

    前言: 将GBK编码的字符串转为UTF-8编码.(通俗点说就是解决中文乱码问题) 简要介绍: 在Win32平台下通过 log 输出中文字符时,会出现中文乱码问题.同样的代码在 ios 和 Androi ...

随机推荐

  1. JNI/NDK开发指南(一)—— JNI开发流程及HelloWorld

    转载请注明出处:http://blog.csdn.net/xyang81/article/details/41777471 JNI全称是Java Native Interface(Java本地接口)单 ...

  2. apache开启.htaccess及.htaccess的使用方法

    今天本地调试PHP程序,用到了.htaccess,而默认配置里面开启.htaccess,在网上找到了开启.htaccess的可行方法,供朋友们借鉴.(开启的我他的方法不行,查找了一下AllowOver ...

  3. bzoj 3242: [Noi2013]快餐店 章鱼图

    3242: [Noi2013]快餐店 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 266  Solved: 140[Submit][Status] ...

  4. Codeforces Round #198 (Div. 2) —— A

    最水的题,可惜当时赶时间没有注意数据范围:暴力超时了! 其实应该用x,y的最大公约数来判断: 代码: #include<iostream> using namespace std; int ...

  5. PHP 中的随机数——你觉得可靠么?

    本文主要分析以加密为目的的随机数生成问题.PHP 5 并未提供生成强加密随机数的简便机制,但是,PHP 7 引入了两个 CSPRNG 函数以解决该问题.系 OneAPM 工程师编译整理. 什么是 CS ...

  6. [wikioi]奇怪的梦境

    http://wikioi.com/problem/2833/ 拓扑排序,居然1A,哈哈. #include <cstdio> #include <iostream> #inc ...

  7. Inline Hook NtQueryDirectoryFile

    Inline Hook NtQueryDirectoryFile 首先声明这个是菜鸟—我的学习日记,不是什么高深文章,高手们慎看. 都总是发一些已经过时的文章真不好意思,几个月以来沉迷于游戏也是时候反 ...

  8. android 读写SD卡文件

    参考: http://www.oschina.net/code/snippet_176897_7336#11699 写文件: private void SavedToText(Context cont ...

  9. EditPlus+MinGW搭建简易的C/C++开发环境

    EditPlus+MinGW搭建简易的C/C++开发环境 有时候想用C编点小程序,但是每次都要启动那难用又难看的VC实在是不情愿,而且老是会生成很多没用的中间文件,很讨厌,后来看到网上有很多人用Edi ...

  10. bzoj1559

    自动机上状压dp,把单词是否存在压成二进制位注意这里面某些单词会包含其他单词,所以某些自动机上有些状态点对应多个二进制位方案只要再顺着有方案的状态搜一遍即可 ..,'a'..'z'] of longi ...