当我调用带有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。
答案 0 :(得分:1)
TinyXML仅支持UTF-8编码。因此,如果要提供ASCII以外的字符,则必须以UTF-8提供它们。
答案 1 :(得分:0)
您可以在http://www.grinninglizard.com/tinyxmldocs/index.html
上查看此部分可以编译TinyXML以使用或不使用STL。使用STL时,TinyXML使用std :: string类,并完全支持std :: istream,std :: ostream,operator<<<<>>。许多API方法都有'const char *'和'const std :: string&'形式。
编译出STL支持时,不包含任何STL文件。所有字符串类都由TinyXML本身实现。 API方法都使用'const char *'形式进行输入。
使用编译时定义TIXML_USE_STL来编译一个版本或另一个版本。这可以由编译器传递,也可以设置为“tinyxml.h”的第一行。