2

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

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

注意:我确实检查过,里面没有空格

4

1 回答 1

4

很可能在字符前面的文件开头保存了一个 UTF BOM 。tBOM 用于指定使用哪种 UTF 编码对文件进行编码,在 UTF-16 和 UTF-32 的情况下使用哪种字节序。

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

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

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

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

于 2015-09-04T02:43:37.843 回答