查看XML标题
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
我可以声明编码属性是
>来得太晚(除非你知道编码,否则你不能正确阅读)
>冗余,因此容易出错:很容易用“Big5”替换它,但将文件保存为UTF-8
我在这里混乱了吗?
正如你所提到的,你必须知道文件的编码以读取编码属性。
原文链接:https://www.f2er.com/xml/293766.html然而,有一个启发式,可以很容易地让你足够接近“真正的”编码,以允许您阅读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的问题。