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