我正在处理一些文件编码的东西。当我学习BOM时,它会显示The UTF-8 representation of the BOM is the byte sequence 0xEF,0xBB,0xBF
,然后我会找到Code page layout这是一个包含许多字符编码信息的表。我很好奇的是,如果BOM字节序列有一些规则,我的意思是,为什么不使用0xEE,0xFF,0xBB
或任何其他字节序列来表示UTF-8?提前谢谢。
答案 0 :(得分:0)
BOM特定于Unicode UTF(Unicode转换格式)编码。它是根据特定UTF中定义的规则对特定字节序列进行编码的Unicode字符U+FEFF ZERO WIDTH NO-BREAK SPACE
,与任何其他Unicode代码点相同。 BOM的特殊之处在于它是编码文本前面的第一个编码码点,因此您可以发现使用哪个UTF对文本进行编码,如果没有通过其他方式指定带外。
UTF-8的BOM为EF BB BF
,UTF-16LE为FF FE
,UTF-32LE为FF FE 00 00
等。它们只是同一个Unicode的不同表示形式codepoint U+FEFF
。
您链接到的其他编码(如Windows-1252)不使用BOM并且无法对该特定字符进行编码,因此没有替代BOM的“Windows-1252编码”。