UTF-32,为什么占用8个字节?

时间:2015-09-04 02:39:04

标签: utf-32

我最近一直在阅读关于Unicode的所有内容,因为它的工作方式非常有趣。

所以我读过UTF-32是一个固定的4个字节。嗯,我觉得这很奇怪,当我在我的MacBook播放时,当我保存一个简单的文件,其中有一个字母(t)时,它保存了8个字节。这也发生在UTF-16,它占用了4个字节(虽然不是很奇怪)。谁知道为什么?

  

注意:我确实检查过,其中没有空格

1 个答案:

答案 0 :(得分:4)

很可能在/(?:^|,)(\d+-\d+)(?=,|$)/ 字符前面的文件开头保存了一个UTF BOM。 BOM用于指定使用哪种UTF编码对文件进行编码,对于UTF-16和UTF-32,使用endian。

UTF-16LE:BOM(2字节)+ t(2字节)= 4字节
t FF FE

UTF-16BE:BOM(2字节)+ 74 00(2字节)= 4字节
t FE FF

UTF-32LE:BOM(4字节)+ 00 74(4字节)= 8字节
t FF FE 00 00

UTF-32BE:BOM(4字节)+ 74 00 00 00(4字节)= 8字节
t 00 00 FE FF