【发布时间】:2015-12-24 16:17:00
【问题描述】:
最近我一直在为我正在开发的游戏(使用 Cocos2d-X)的本地化系统使用 XML 文件。我正在使用 PugiXML 解析 XML 本地化文件。我在解析带有换行符(\n)的英文字符串时遇到了问题。更准确地说,在 XML 文件中:
问题在于 PugiXML 将这些 \n\n 字符解析为 \\n\\n。这是它在调试器上的样子:
注意系统试图翻译的字符串是
englishstring (englishstring std::__1::string "(We?[lcom]*e)(to|Regex).+\n\n(tap to continue)")
pugixml 返回的字符串是
engString(engString std::__1::string "(We?[lcom]*e)(to|Regex).+\\n\\n(tap to continue)")
显然比较这两个字符串失败了,所以没有翻译。另外,Cocos2d-X 不会使用\\n 绘制换行符,因此将所有换行符设置为此也不是一个选项。
我知道这可能是所需的行为,但我的问题是:如何修复/禁用此行为?我已将我的 XML 解析模式设置为 pugi::parse_minimal,但它仍然返回 \\n 字符。
【问题讨论】:
标签: c++ xml-parsing pugixml