症状

当试图加载 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 全球软件开发http://www.unicode.org/的最新的 Unicode 标准。有关为 Microsoft Internet Explorer 开发基于 Web 的解决方案的详细信息,请访问下面的 Microsoft 网站:

http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep(c) Microsoft 公司 2000 保留所有权利。由 Jay Andrew Allen,Microsoft 公司的贡献。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×