首页 > 代码库 > cocos2d-x-3.1 国际化strings.xml解决乱码问题 (coco2d-x 学习笔记四)
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解析,所以读者能够不用操心效率及内存问题。
cocos2d-x-3.1 国际化strings.xml解决乱码问题 (coco2d-x 学习笔记四)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。