CoCos2dx开发:中文乱码
一、FontToUTF8()方法修改字体:
1、HelloWorldScene.h头文件中声明方法:
char* FontToUTF8(const char* font);
2、HelloWorldScene.cpp中书写方法:
char* HelloWorld::FontToUTF8(const char* font)
{
int len = MultiByteToWideChar(CP_ACP, , font, -, NULL, );
wchar_t *wstr = new wchar_t[len + ];
memset(wstr, , len + );
MultiByteToWideChar(CP_ACP, , font, -, wstr, len);
len = WideCharToMultiByte(CP_UTF8, , wstr, -, NULL, , NULL, NULL);
char *str = new char[len + ];
memset(str, , len + );
WideCharToMultiByte(CP_UTF8, , wstr, -, str, len, NULL, NULL);
if (wstr)
delete[] wstr;
return str;
}
HelloWorldScene.cpp中初始化init()方法里,调用方法进行中文转换:
auto* label3 = Label::create(HelloWorld::FontToUTF8("开始游戏"), "宋体", );
注意:这种方法可以使运行结果里的乱码成为中文,但是会有一个问题,就是在打包成apk时出现错误:
错误:

这是由于NDK不支持所用的C++库造成的。
二、XML文件调用修改字体:
资源文件夹Resources下:

文件内容都如下:
<dict>
<key>string</key>
<string>开始游戏</string>
</dict>

HelloWorldScene.cpp中调用XML文件:
auto *chnStrings = Dictionary::createWithContentsOfFile("UTF8.xml");
const char *str1 = ((String*)chnStrings->objectForKey("string"))->getCString();
auto* label3 = Label::create(str1, "宋体", );
注意:xml文件和bak文件都是要保存为UTF-8编码格式,这个很重要:

结果如图:

打包验证:




打包成功!
CoCos2dx开发:中文乱码的更多相关文章
- Openfire Strophe开发中文乱码问题
网站上有很多Openfire Web方案,之前想用Smack 但是jar包支持客户端版本的,还有JDK版本问题 一直没调试成功 估计成功的方法只能拜读源码进行修改了. SparkWeb 官网代码很 ...
- cocos2d-x解决中文乱码问题的几种办法
昨天改写cocos2d-x的例程,想在其基础上加上一个计分系统.没有分数实在让人没有玩下去的动力! 我在主场景上加上了一个CCLabelTTF,用于显示分数. 但是意外的发现,当内容含有中文时,CCL ...
- JAVA开发中文乱码的几个解决方案
一:html乱码或者引入的JS乱码 1:第一步,text file encoding 首先确保文件的保存格式要UTF-8,如在eclipse中,要在文件上点属性,确保这里选择UTF-8 注意,在ecl ...
- 01--Java开发中文乱码问题分析
一.常见的编码格式 1. ASCII码 总共128个字符,用1个字节的低7位表示,0~31是控制字符,32~126是打印字符. 2. ISO-8859-1 ISO组织在ASCII基础上进行扩展,仍是 ...
- cocos2dx解决中文乱码方法
使用plist文件,优点方便做多国语言支持~也不用去做编码转换 1.Resource目录下新建text.plist文件,内容格式如下 <?xml version="1.0" ...
- Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法
做个打飞机的游戏,由于版本号太新,网上基本没有教教程,我的版本号是cocos2d-x 3.1.1的.今天遇到cocos2dx中中文乱码的问题.无奈仅仅好Google百度寻求答案,明确了这个问题的缘由. ...
- java中文乱码分析整理
在JavaWeb应用开发中,经常会出现页面中本该显示中文的地方却是乱码的情况.究其原因,主要是由于在Web组件之间.或Web组件与浏览器.与数据库所使用的字符集标准不统一,Web应用程序运行过程中,中 ...
- Java编程中中文乱码问题的研究及解决方案
0 引言 Java最大的特性是与平台的无关性及开发环境的多样性.字符串被Java应用程序转化之前,是根据操作系统默认的编码方式编码.Java语言内部采用Unicode编码,它是定长双字节编码,即任何符 ...
- 移动开发之浅析cocos2d-x的中文支持问题
题记:这阵子一直在学习cocos2d-x,其跨平台的特性确实让人舒爽,引擎的框架概念也很成熟,虽然相应的第三方工具略显单薄,但也无愧是一件移动开发的利器啊,有兴趣的朋友有时间就多了解吧. 使用引擎的过 ...
- cocos2dx 3.2 解决输入框(TextField,TextFieldTTF) 中文乱码问题
近期开发cocos2dx 项目,做一个小游戏.(个人喜欢用最新版本号) 没系统学习就是问题多多,遇到了非常多问题,比方全部的opengl api都必须在主线程中调用, 这让我在多线程载入方面吃了不少亏 ...
随机推荐
- 电商项目-商品表(spu)、规格表(sku)设计
之前在工作中,需要实现商品规格功能,做了很长一段时间,现在回过头来整理下设计思路. sku,spu概念: SPU = Standard Product Unit (标准化产品单元),SPU是商品信息聚 ...
- https及证书
本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密 ...
- 如何为shell安装有道及更新pip.
今天尝试安装shell下的有道翻译,提示需要安装pip. [root@mestery ~]# yum install python-pip [root@mestery ~]# sudo pip ins ...
- C++ STL库的总结以及实现原理
STL的容器可以分为以下几个大类:一:序列容器, 有vector, list, deque, string. 二 : 关联容器, 有set, multiset, map, mulmap has ...
- mysql几种关联的区别
1.平时都是用的逗号的模式:select * from a,b where a.id=b.id,逗号的模式等于inner join和join: 2.left join 和 right join相反,效 ...
- MyBatis 一级缓存,二级缓存,延迟加载设置
1 什么是延迟加载 resultMap中的association和collection标签具有延迟加载的功能. 延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息.使用关联信息时再 ...
- CODEFORCES ROUND #740 ANALYSES BY TEAM:RED & BLACK
A.Alyona and copybooks Problems: 给你一个数n和代价分别为a, b, c.数量不限的1, 2, 3,求将n凑成4的倍数的最小代价 Analysis: cj:取个模随便凑 ...
- 常用API String
Java的API以及Object类 Java的API Java的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JD ...
- homework1-201521410029
姓名:孙浩学号: 201521410029指导教师:高见 实验日期:2018年8月9日 1. 虚拟机安装与调试 安装好xp和kali虚拟机之后,查看这三者(包括主机)的i ...
- JPA学习-03
一.单向一对多 特点:性能差,不怎么用,有集合默认懒加载 @OneToMany 1.private Set<T> t = new HashSet<>() 2.private L ...