当我调用一个带有 char* 的 tinyxml 函数时,我需要传递什么 unicode 格式?
TiXmlText *element_text = new TiXmlText(string);
原因是我正在使用一个 wxString 对象并且我可以给它很多不同的编码。如果我只执行 string.c_str(),wxstring 对象将查询当前语言环境的编码并创建该格式的 char* 字符串。或者,如果我执行 string.utf8_str(),它将传递一个 utf-8 字符串,但似乎 tinyxml 不会意识到它已经是 utf-8 编码,并将 utf-8 字符串重新编码为 utf-8(是的,结果是双 utf-8 编码)。所以当我写出来时,如果我将 Notepad++ 设置为显示 utf-8,我会看到:
baÄşlam 而不是 bağlam。
我想自己对 utf_8 (string.utf8_str()) 进行编码,而不是让 tinyxml 接触它并把它写出来。
我该怎么做? tinyxml期望在函数参数(上面代码中的构造函数)中传递什么格式?测试的答案不是 utf-8,尽管如果有意义的话它最终会把它写成 utf-8。
最佳答案
TinyXML 只支持 UTF-8 编码。因此,如果您想提供 ASCII 之外的字符,则必须以 UTF-8 提供。
关于c++ - 我传递采用 char* 的 tinyxml 函数的是什么 unicode 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9952493/