我在处理(Unmarshall)xml文件时对xml编码有疑问。 我们在文件的开头指定xml文件的编码,如下所示。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
我的问题是在程序读取此行之后,它决定以下内容以UTF-8编码。但要阅读第一行,程序如何确定它是以UTF-8编码的?我的意思是在读取字节流时,程序如何知道它需要对第一行使用哪种编码?
此致 Mayuran
答案 0 :(得分:2)
写于F.1节。 xml规范:
F.1无外部编码信息的检测
因为每个XML实体都没有伴随外部编码 信息而非UTF-8或UTF-16编码必须以XML开头 编码声明,其中第一个字符必须是
<?xml
, 任何符合标准的处理器可以在两到四个八位字节之后检测到 输入,以下哪种情况适用。在阅读这个清单时,它 可能有助于了解UCS-4
,<
为#x0000003C
且?
为#x0000003F
,UTF-16
数据流所需的字节顺序标记为#xFEFF
。符号##用于表示除外的任何字节值 连续两个## s不能同时为00。
基本上,有两种选择:
specification然后清楚地记录特定八位字节流的表,处理器应该使用这些表来确定用于查看encoding
声明的编码。