cocos2d-x-3.1 国际化strings.xml解决乱码问题 (coco2d-x 学习笔记四)

今天写程序的时候发现输出文字乱码,尽管在实际开发中把字符串写在代码里是不好的做法。可是有时候也是为了方便,遇到此问题第一时间在脑子里面联想到android下的strings.xml来做国际化。本文就仅仅针对解析xml来实现cocos2d-x的国际化解决乱码问题。

寻找解决方法的时候在cocos2d-x的cpp-tests文件里发现strings.xml,因此在事例源代码中发现此方法。

为了方便,我直接将C:\cocos2d-x-3.1\tests\cpp-tests\Resources\fonts的strings.xml文件复制到自己的fonts目录下。

strings.xml内容例如以下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>chinese1</key>
	<string>美好的一天</string>
	<key>japanese</key>
	<string>良い一日を</string>
	<key>russian</key>
	<string>Хорошего дня</string>
	<key>spanish</key>
	<string>Buen día</string>
</dict>
</plist>

xml解析代码实现例如以下:

auto strings = FileUtils::getInstance()->getValueMapFromFile("fonts/strings.xml");
	std::string chinese = strings["chinese1"].asString();
	std::string russian = strings["russian"].asString();
	std::string spanish = strings["spanish"].asString();
	std::string japanese = strings["japanese"].asString();

查看源代码的时候也发现此方式用的是sax解析,所以读者能够不用操心效率及内存问题。

时间: 2024-11-05 15:59:53

cocos2d-x-3.1 国际化strings.xml解决乱码问题 (coco2d-x 学习笔记四)的相关文章

android strings.xml转义字符, 注意细节解决(转)

XML转义字符 以下为XML标志符的数字和字符串转义符 "     (" 或 ") '     (' 或 &apos;) &     (& 或 &) lt(<) (< 或 <) gt(>) (> 或 >)  如题: 比如:在string.xml中定义如下一个字符串, <string name="first">大家好,欢迎来到eoeandroid社区.welcome to her

Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组

经常我们会在资源文件(res/strings.xml)定义字符串,一维数组,那定义二维数组?直接定义二维数组没找到,可以间接定义. 其实很简单,看过用过一次就可以记住了,一维数组估计大家经常用到,但是二维数组应该比较少用,因为只能间接定义二维数组. 数组的定义: 数组就是一次性定义相同数据类型的一组变量数组定义. 数组的特点: 1.数组是相同数据类型的元素的集合. 2.数组中的各元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起. 3.数组元素用整个数组的名字和它自己在数组中的顺序位

修改Android中strings.xml文件, 动态改变数据

有些朋友可能会动态的修改Android中strings.xml文件中的值,在这里给大家推荐一种简单的方法.strings.xml中节点是支持占位符的,如下所示: <string name="data">整数型:%1$d,浮点型:%2$.2f,字符串:%3$s</string> 其中%后面是占位符的位置,从1开始, $ 后面是填充数据的类型         %d:表示整数型:         %f :表示浮点型,其中f前面的.2 表示小数的位数         %

apk修改strings.xml后重新打包出错

============问题描述============ 使用apktool进行解包,之后修改strings.xml中的连接字段,重新打包后的apk安装后无法连接到网络.修改的ip是没有问题的,因为我用这个ip通过eclipse打包后的app是可以正常运行的. ============解决方案1============ 引用 3 楼 mk1172010 的回复: Quote: 引用 1 楼 sagittarius1988 的回复: 估计是编码格式的问题,转成unix格式的 可以讲详细一点吗?什么

【转载】不可不知的 Android strings.xml 那些事

相信 strings.xml 已经是大家在 Android 开发中最熟悉的文件之一了,但其实它也有很多需要注意的地方和一些小技巧,知道了这些可以让你的 Android 应用更加规范易用,大家来看看吧.:   ) 不要复用 这一条可能很多人会有不同的意见,因为广为流行的编程理念就在教导我们要复用代码,当然代码复用是很好的理念,可以让程序更加简洁.但也容易形成什么都想复用的思维惯性,而这在某些场景下就可能会造成麻烦. 比如,想象下你在应用中的登录和注册界面中都是用了相同的字符串 – R.string

Android字符串在strings.xml文件的定义和使用

路径:res/values/strings.xml 定义示例: 1 <resources> 2 <string name="app_name">SzLib</string> 3 <string name="address">广东省深圳市福田区福中一路2001号</string> 4 <string name="website">https://www.szlib.org.cn

Android Strings.xml To CSV / Excel互转

Android Strings.xml To CSV/Excel互转https://blog.csdn.net/hzxpyjq/article/details/50686983https://blog.csdn.net/u013254166/article/details/56278233 xls_xml  langtool omni 可以!很流畅,干练,基本设置都有,省电高效:rr -设置全,也比较干净,但是最近任务很烂,没有一键清理按钮lingeaos 缺少定制性,不太流畅,还行 crdro

Android学习笔记(三八):资源resource(上)、XML解析(XmlPullParser)

resource是java源代码之外的静态信息.例如layout.resource作为文件存放在res/目录下面,除了res/raw/外,Android会自动解析,例如layout文件,我们不需要自己去解析XML封装.我们之前用过res/layout/,以及res/anim/之前已经用过. Image:文件存放在res/drawable/,存放应用的icon. Raw:res/raw/,程序所需的任意格式的文件,但是系统不会对其进行解析,也既Adroid Framework并不需要的. Stri

struts2学习笔记--struts.xml配置文件详解

这一节主要讲解struts2里面的struts.xml的常用标签及作用: 解决乱码问题 <constant name="struts.i18n.encoding" value="utf-8"/> //设置编码格式为utf-8 自定义扩展名 <constant name="struts.action.extension" value="action,,wang"/> //struts默认扩展名是actio