这里以hexdump形式显示,所以没有歧义。
00000000 3c 3f 78 6d 6c 20 65 6e 63 6f 64 69 6e 67 3d 22 |<?xml encoding="|
00000010 55 54 46 2d 31 36 22 3f 3e 0d 0a 3c 78 6d 6c 3e |UTF-16"?>..<xml>|
00000020 48 69 3c 2f 78 6d 6c 3e |Hi</xml>|
如果遇到非常糟糕的encoding =值,XML解析器应该怎么做?
如果文档的某些其他编码的有效BOM不是一开始在<?xml
中声明的编码,答案是否会更改?
我在这里试图弄清楚如何通过一个不能处理UTF-16的链接传递XML文档,但几乎可以处理任何其他编码。当谈到编码时,UTF-16就是古怪的,所以我对此并不感到惊讶。
答案 0 :(得分:0)
请参阅W3C XML Recommendation,特别是 Encoding Declaration 部分,更具体地说是以下段落:
在没有外部运输提供的信息的情况下 协议(例如HTTP或MIME),它是实体的fatal error 包括要呈现给XML处理器的编码声明 在声明中指定的编码之外的编码中,或者用于 实体,既不以字节顺序标记也不以编码开头 声明使用UTF-8以外的编码。请注意,因为ASCII 是UTF-8的子集,普通的ASCII实体并不严格需要 编码声明。
( Bold 添加强调。)