UTF-8是否具有固定的字节顺序

时间:2016-01-19 14:50:06

标签: unicode utf-8 utf-16 byte-order-mark utf-32

我听说我不必在UTF-8文件/流的开头放置BOM。

它是否有固定的字节顺序呢?

在这种情况下,UTF-16和UTF-32怎么样?

1 个答案:

答案 0 :(得分:1)

UTF-8不需要字节顺序,因为它是根据字节流定义的。该顺序直接由单个字节的地址给出。不同数量的字节组成一个代码点。

另一方面,UTF-32是根据32位单元流(即每个4字节,每个直接映射到Unicode代码点)定义的,可以以不同的方式编码为字节流。

这就是BOM为您指示的内容,基本上是字节是否按其重要性排序(即流中最早的字节是最不重要的,小端的)或者是它(即最早的字节是最重要的,大端)。

UTF-16类似但有点笨拙。它被定义为16位单元的流,因此您必须担心字节顺序。此外,由于单个16位单元不再(不再)足以编码所有Unicode,它也是一种多“单元”编码,因此结合了UTF-8和UTF-32的缺点:)