XML标头中的“encoding”有什么用处?
查看XML标题
<?xml version="1.0" encoding="UTF-16" standalone="no"?> 我可以声明编码属性是 >来得太晚(除非你知道编码,否则你不能正确阅读) 还是那个属性不是关于流的内容? 我在这里混乱了吗?
正如你所提到的,你必须知道文件的编码以读取编码属性。
然而,有一个启发式,可以很容易地让你足够接近“真正的”编码,以允许您阅读encoding属性。这是可行的,因为<?xml part by definition只能包含ASCII范围中的字符(但是它们是编码的)。 XML标准甚至describes the exact process used to find out the encoding。 并且编码标签也不是冗余的。例如,如果使用XML规范中的算法来发现使用某些基于ASCII(或ASCII兼容)的编码,您仍然需要读取编码以找出实际使用的编码(有效候选字符是ASCII ,UTF-8,任何ISO-8859-* encodings,任何Windows-*编码,KOI8-R和许多,许多其他)。对于<?xml部分本身,它不会有什么区别,它是一个,但对于文档的其余部分,它可以产生巨大的差异。 关于标记错误的XML文件:是的,很容易产生那些,但是:XML规范明确指定那些文件是错误的,因此不是正确的XML。不正确的编码必须报告为错误(只要可以检测到!)。所以这是无论谁生产XML的问题。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |