我最近一直在阅读有关 Unicode 的所有内容,因为它的工作原理非常有趣。
所以我读过这UTF-32
是一个固定的 4 个字节。好吧,我觉得这很奇怪,当我在我的两台 MacBook Air 上保存一个简单的文件时,其中有一个字母 (t),它保存了 8 个字节。这也发生在UTF-16
,它占用了 4 个字节(虽然不是很奇怪)。有谁知道为什么?
注意:我确实检查过,里面没有空格
我最近一直在阅读有关 Unicode 的所有内容,因为它的工作原理非常有趣。
所以我读过这UTF-32
是一个固定的 4 个字节。好吧,我觉得这很奇怪,当我在我的两台 MacBook Air 上保存一个简单的文件时,其中有一个字母 (t),它保存了 8 个字节。这也发生在UTF-16
,它占用了 4 个字节(虽然不是很奇怪)。有谁知道为什么?
注意:我确实检查过,里面没有空格
很可能在字符前面的文件开头保存了一个 UTF BOM 。t
BOM 用于指定使用哪种 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