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