PRB: XML 分析器无法分析 utf-7 文档

症状

当试图加载 XML 文件保存为 UTF-7 (Unicode 编码格式传送),Internet Explorer 的 XML 分析器将生成以下错误消息:

无效的文档的顶层。

使用 MSXML 解析器从服务器端或客户端脚本时,也会发生同样的错误。

原因

版本的 MSXML 2.6 之前 MSXML 解析器不支持 UTF-7。

解决方案

若要解决此问题,请保存为 UTF-8,XML 文档的首选的传输编码格式为 Unicode.MSXML 2.6 或更高版本支持 utf-7 编码。

状态

此行为是设计使然。

更多信息

Unicode 是统一字符集表示几乎世界上的所有语言,尽管有很多的字节表示形式或转换格式,可以使用 Unicode 文件。最流行的格式是 utf-8,表示为一至四个 8 位字节序列的 Unicode 字符。Utf-7 是定义为允许通过邮件网关采用 ASCII 和去除文本消息则高位的 Unicode 文本的 7 位转换格式。基于 XML 1.0 标准,部分 4.3.3,一个有效的 XML 文件将需要下列选项之一:

  • 一个 Unicode utf-8 格式文件。

  • 一个 Unicode utf-16 格式文件。

  • 其第一次以字节形式具有一些其他的字符编码 (例如,ASCII) 中的文件

Utf-7 不使用字节顺序标记。此外,utf-7 转换的特殊 XML + ADw,最后 utf-7 的第一个字符的字符<编码的 XML 文档。由于这不符合 XML 标准,MSXML 拒绝加载此类文件。许多文本编辑器和字处理程序允许您保存 Unicode 文本的文件,称为编码文本在 Microsoft Word 中,在许多不同的传输编码,包括 utf-7。 因此,如果您为"编码文本 utf-7"在 Word 中保存文档,将拒绝 MSXML 加载它出于上述原因。

重现问题的步骤

  1. 在 Word 2000 中创建一个简单的 XML 文件:

    <?xml version="1.0"?><MyTag><EmbeddedTag name1="value"/></MyTag>
  2. 将文件保存为编码文本。当 Word 询问您是否想要丢失格式时,请单击是。然后 Word 会提示您输入要使用的编码格式。选择UTF-7,然后再将文档另存为 cap 文件名称 TestUTF7.xml。

  3. 加载 cap 文件名称在 Internet Explorer 5 TestUTF7.xml。您将收到以下错误消息:

    无效的文档的顶层。第 1 行,位置 1 + ADw? xml 版本 + AD0AIg-1.0 + ACI-? + AD4-。

参考

对于最新 Microsoft 全球软件开发的最新的 Unicode 标准。有关为 Microsoft Internet Explorer 开发基于 Web 的解决方案的详细信息,请访问下面的 Microsoft 网站:

(c) Microsoft 公司 2000 保留所有权利。由 Jay Andrew Allen,Microsoft 公司的贡献。

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×