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