我对XML有基本的了解。我的问题是,为什么需要在XML文档开头提到使用的编码,以及为什么需要编码?
我对XML有基本的了解。我的问题是,为什么需要在XML文档开头提到使用的编码,以及为什么需要编码?
虽然不是必需的,但通常您可能希望包含它:
在缺乏外部字符编码信息(例如 MIME 标头)的情况下,存储在除 UTF-8 或 UTF-16 以外的编码中的解析实体必须以包含编码声明的文本声明(请参见 4.3.1 文本声明)开头。
所以,例如,在通过 HTTP 传输 XML 时,XML 解析器可能会使用 Content-Type
标头的值,如下所示:
Content-Type application/xml; charset=UTF-8
但是一旦这个文档被本地存储,它就不会包含这些信息 - 因此将编码包括在XML文档的声明部分似乎是一个好主意。
VersionInfo
不同,BNF语法符号中的 EncodingDecl
并不是可选的。请参见:https://www.w3.org/TR/REC-xml/#sec-TextDecl。 - K3---rnc