【发布时间】:2011-07-02 06:34:02
【问题描述】:
我有一个以
开头的 xml 架构文件<?xml version="1.0" encoding="UTF-16"?>
当我尝试将此架构文件添加到 XmlDocument 实例 Schemas 集合中时,我得到以下异常
没有 Unicode 字节顺序标记。无法切换到 Unicode。
如果我将编码更改为 UTF-8,API 工作正常。无论如何将这个 sceham 与 utf-16 一起使用?
【问题讨论】:
我有一个以
开头的 xml 架构文件<?xml version="1.0" encoding="UTF-16"?>
当我尝试将此架构文件添加到 XmlDocument 实例 Schemas 集合中时,我得到以下异常
没有 Unicode 字节顺序标记。无法切换到 Unicode。
如果我将编码更改为 UTF-8,API 工作正常。无论如何将这个 sceham 与 utf-16 一起使用?
【问题讨论】:
如果它是 UTF-16 但没有 BOM,则它不是有效的 XML 文件。来自W3C XML 1.0 recommendation, 5th edition:
以 UTF-16 编码的实体必须和以 UTF-8 编码的实体可以以 [ISO/IEC 10646:2000] 的附件 H、[Unicode 的 16.8 节] 中描述的字节顺序标记开头](零宽度无间隔字符,#xFEFF)。这是一个编码签名,不是 XML 文档的标记或字符数据的一部分。 XML 处理器必须能够使用此字符来区分 UTF-8 和 UTF-16 编码的文档。
基本上,它可以使用 UTF-16,但您需要一个字节顺序标记。或者首先使用 UTF-8,当然...
【讨论】: