我听说我不必将 BOM 放在 UTF-8 文件/流的开头。
那么它有固定的字节顺序吗?
在这种情况下,UTF-16 和 UTF-32 呢?
我听说我不必将 BOM 放在 UTF-8 文件/流的开头。
那么它有固定的字节顺序吗?
在这种情况下,UTF-16 和 UTF-32 呢?
UTF-8 不需要字节顺序,因为它是根据字节流定义的。顺序由单个字节的地址直接给出。不同数量的字节组成一个代码点。
另一方面,UTF-32 是根据 32 位单元的流(即每个 4 字节,每个直接映射到 Unicode 代码点)定义的,可以以不同的方式将其编码为字节流。
这就是 BOM 为您指示的内容,基本上字节是按其重要性排序(即流中最早的字节是最不重要的,小端序)还是与之相反(即最早的字节是最重要的,大端序) .
UTF-16 类似,但更时髦一点。它被定义为 16 位单元的流,因此您必须担心字节顺序。此外,由于单个 16 位单元(不再)足以编码所有 Unicode,它也是一个多“单元”编码,因此结合了 UTF-8 和 UTF-32 的缺点:)