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都必须在主线程中调用, 这让我在多线程载入方面吃了不少亏 ...
随机推荐
- 201621123002《JAVA程序设计》第十四周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 用 ...
- Oracle学习——dmp文件(表)导入与导出
Oracle学习——dmp文件(表)导入与导出 2014-12-28 0个评论 来源:张文康 廊坊师范学院信息技术提高班 第九期 收藏 我要投稿 前言 关于dmp文件我们用的 ...
- logstash报错 :backtrace=>["org/jruby/RubyIO.java:1457:in `write'", "org/jruby/RubyIO.java:1428:in `write'"
报错: [2019-04-16T15:54:07,827][FATAL][logstash.runner ] An unexpected error occurred! {:error=>#&l ...
- JPA-04
一.JPQL JPA的查询语言(和SQL非常像,面向对象的查询语言) 有list集合可以用size看长度 分页:setFirstResult().setMaxResults(); 获取总条数:getS ...
- centos firewall使用笔记
Centos7.x firewalld配置详解推荐文章文章地址:https://blog.csdn.net/jsonxiang/article/details/87873493 一.firewalld ...
- Wpf窗口中打开WinForm窗口
获取wpf窗口对应的句柄窗口 using System; using System.Windows; using System.Windows.Interop; using IWin32Window ...
- JavaScript基础视频教程总结(111-120章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- C语言的转义字符
原文地址:http://blog.163.com/sunshine_linting/blog/static/44893323201181325818165/ 在字符集中,有一类字符具有这样的特性:当从 ...
- UNIX笔记 第二天
一.进程的退出: exit(3) _exit(2) atexit(3) onexit(3) 二.进程资源的回收:wait(2) waitpid(2) 三.加载新的可执行程序: exec函数族 exe ...
- Jquery 在子页面上设置父页面元素的值
使用情景:因为我父页面上有用art.dialog,而子页面上有项目中的框架弹出方法跟art.dialog冲突,不能使用art.dialog自带的方法传值, 所以只好用一种简单粗暴的方法来设置. var ...