本文可帮助解决使用 Microsoft XML 分析程序(MSXML)分析包含特殊字符的可扩展标记语言(XML)时出现的错误。
原始产品版本: .NET Framework
原始 KB 数: 238833
症状
使用 Microsoft XML 分析程序(MSXML)分析包含特殊字符的 XML 时,分析器可能会在第一个特殊字符的行和位置报告以下错误消息:
文本内容中找到了无效字符。
原因
XML 文档未使用正确的字符编码方案进行标记。
决议
- 在 XML 处理指令中指定正确的编码方案。
- 将 XML 数据重新编码为正确的 UTF-8。
状态
此行为是设计造成的。
详细信息
特殊字符是指标准美国信息交换标准代码(ASCII)字符集范围之外的任何字符,0x00 - 0x7F,例如带重音符、umlauts 或其他音调符号的拉丁字符。 XML 文档的默认编码方案是 UTF-8,它使用0x80或高于其他标准编码方案的值对 ASCII 字符进行编码。
大多数情况下,如果使用简单的 iso-8859-1 编码方案的数据,则会看到此问题。 在这种情况下,最快的解决方案通常是“解决方案”部分之前列出的第一个解决方案。 例如,使用以下 XML 声明:
<?xml version="1.0" encoding="iso-8859-1" ?>
<rootelement>
...XML data...
</rootelement>
相反,可以使用数字实体引用对这些字符中的每个字符进行编码。 例如,可以采用特殊字符 <test>á</test>六进制版本)。