Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C PugiXML值输出编码_C_Encoding_Xml Parsing_Utf_Pugixml - Fatal编程技术网

C PugiXML值输出编码

C PugiXML值输出编码,c,encoding,xml-parsing,utf,pugixml,C,Encoding,Xml Parsing,Utf,Pugixml,我有点困惑。pugi::xml_node::value()返回类型为chart_t的字符串,该字符串可以是wchar_t,也可以是char,具体取决于编译标志。在pugiXML的文档中说,它可以在utf系列编码上使用不同的类型。好啊我正在使用pugi::xml_document::load_file()加载uft16编码的文档。然后,当我迭代抛出节点并在每个节点上调用value()方法时,我将使用哪种编码获得值?大概是在我的数据编码中,我已经将其加载到xml_文档中。这意味着在utf16中。如果

我有点困惑。pugi::xml_node::value()返回类型为chart_t的字符串,该字符串可以是wchar_t,也可以是char,具体取决于编译标志。在pugiXML的文档中说,它可以在utf系列编码上使用不同的类型。好啊我正在使用pugi::xml_document::load_file()加载uft16编码的文档。然后,当我迭代抛出节点并在每个节点上调用value()方法时,我将使用哪种编码获得值?大概是在我的数据编码中,我已经将其加载到xml_文档中。这意味着在utf16中。如果它在utf16中,那么我将无法使用该值,因为将有0个符号,并且我将无法使用strlen、strcpy等等。。。 我做过这样的测试,但一切都很好。有人知道它是怎么工作的吗?


您可以自己指定编码或“享受”自动检测编码。

有两种编译模式-默认模式,文档使用UTF8在字符数组中存储内存中的数据,以及wchar模式(PUGIXML\u wchar\u模式),其中数据使用UTF16或UTF32存储在wchar\t数组中,具体取决于大小(wchar\u t)

加载或保存文档时,pugixml会自动对输入数据进行解码,或按照加载/保存函数的“encoding”参数指定的编码对输出数据进行编码


在您的情况下,pugixml会自动检测到输入文件包含UTF16数据,并将其解码为UTF8,这是您从value()获得的数据。

这些链接已断开,请发布最新的工作链接