这可能是给定的,但我试图做到彻底;由于 .NET 的string
类型是 UTF-16,是否XmlDocument.LoadXml(string)
只是简单地忽略encoding
XML 声明中的属性,因为文档编码的任何内容都应该已经转换为 UTF-16,因为它包含在 .NET 字符串中?
问问题
4850 次
1 回答
0
XML 属性确定编码类型。
例如
<?xml version="1.0" encoding="utf-8" ?>
这就是它的读取方式,然后将其转换为 UTF-16 字符串,但如果您希望看到 UTF-16 字符,您不会,它们会丢失。
从这里的字符串的 MSDN 文档:
字符串中的每个 Unicode 字符由 Unicode 标量值定义,也称为 Unicode 代码点或 Unicode 字符的序数(数字)值。每个代码点都使用 UTF-16 编码进行编码,编码的每个元素的数值由一个 Char 对象表示。
这意味着当您通过 XmlDocument.LoadXml() 传递带有 XML 标头的字符串时,它必须说编码是 UTF-16。否则,实际的底层编码将与标头中报告的编码不匹配,并将导致引发 XmlException。
于 2013-02-28T09:36:36.907 回答