Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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++ 我可以将libxml2与unicode一起使用吗?_C++_Xml_Unicode_Libxml2 - Fatal编程技术网

C++ 我可以将libxml2与unicode一起使用吗?

C++ 我可以将libxml2与unicode一起使用吗?,c++,xml,unicode,libxml2,C++,Xml,Unicode,Libxml2,我可以将libxml2与unicode一起使用吗?我想读写Unicode中的XML文件,可以用C++的LIXXML2?< /P> < P> 将此处理说明用于UTF-8内容*: <?xml version="1.0" encoding="UTF-8"?> *这就是我假设您所说的“unicode”的意思,因为。libxml2在内部使用utf8编码来存储值,并且将使用iconv将指定编码(在xml编码声明中)的输入转换为utf8。因此,在某种意义上,libxml2可以与unicod

我可以将libxml2与unicode一起使用吗?我想读写Unicode中的XML文件,可以用C++的LIXXML2?< /P> < P> 将此处理说明用于UTF-8内容*:

<?xml version="1.0" encoding="UTF-8"?>



*这就是我假设您所说的“unicode”的意思,因为。

libxml2在内部使用utf8编码来存储值,并且将使用iconv将指定编码(在xml编码声明中)的输入转换为utf8。因此,在某种意义上,libxml2可以与unicode一起工作


但如果您真正的问题是:libxml2是否接受wchar_t*作为输入,那么答案是否定的。您必须将其转换为8位编码(utf8可能是更安全的选择,因为它可以对每个unicode码点进行编码)。

您想知道libxml2是否可以处理wchar_t*?或者您想知道它是否支持非ASCII 7位编码?我不明白“libxml2内部使用utf8编码”中的意思,这是什么内部用途?包含扩展字符的字符串有多种编码方式(iso-8859-1、ASCII、shift-jis、utf-8、utf-16等)。其中一些只覆盖unicode字符集的一部分,另一些则完全覆盖它。在xml中,文档可以告诉它使用什么编码(使用
标记)。解析文档时,
libxml2
会将文档转换为
utf-8
,如果它在处理之前还没有使用此编码,它会为您提供
utf-8
内容。谢谢。那么,wchar_t*的含义是什么?如果不是来自xml文件,它将从何而来?
wchar\u t
是在
C
标准中定义的一种类型(由
C++
继承),可以表示一些宽字符。这些宽字符的编码和实现取决于实现,但它们经常在Windows上使用(宏
TCHAR
在所谓的“unicode”模式下编译时扩展为
wchar\t
)。我建议你不要使用它们。我这样问是因为很多windows程序员都假设“unicode==wchar\t”(这是不正确的)。对于您的使用,我要说,
libxml2
确实支持unicode。谢谢。我在您提供的链接中读到“xmlChar,libxml2数据类型是一个字节,这些字节必须作为UTF-8有效字符串进行组合。”这是什么意思?什么字节组合为utf-8?