为什么UTF-8编码不需要字节顺序标记?

Ben*_*nny 5 encoding utf-8

Unicode FAQ提到 UTF-8 不需要 BOM。

\n
\n

问:无论底层处理器是小端还是大端,UTF-8 编码方案是否相同?

\n

答:是的。由于 UTF-8 被解释为字节序列,因此不存在使用 16 位或 32 位代码单元的编码形式所存在的字节序问题。当 BOM 与 UTF-8 一起使用时,它仅用作\n编码签名以区分 UTF-8 与其他编码 \xe2\x80\x94 它\n与字节顺序无关。

\n
\n

对于上述代码点U+0744,UTF-8 需要 2 到 4 个字节来表示它们。是否不需要 BOM 来指定这些字节的字节顺序,还是 UTF-8 采用默认值?

\n

Jon*_*oni 6

UTF-8 对编码字符的字节顺序给出了严格的定义。计算平台之间不允许存在差异。

例如,欧元符号 U+20AC 必须编码为字节序列\xE2\x82\xAC。不允许对这些字节进行其他排序。