BOM(Byte Order Mark),是 utf 编码方案里用于标识编码的标准标记,在 utf-16 里本来是 FF FE,变成 utf-8 就成了 EF BB BF。这个标记是可选的,因为 utf-8 字节没有顺序,所以它可以被用来检测一个字节流是否是 utf-8 编码的。微软做这种检测,但有些软件不做这种检测,而把它当作正常字符处理。
微软在自己的 utf-8 格式的文本文件之前加上了 EF BB BF 三个字节, Windows 上面的 Notepad 等程序就是根据这三个字节来确定一个文本文件是 ASCII 的还是 utf-8 的, 然而这个只是微软暗自作的标记, 其它平台上并没有对 utf-8 文本文件做个这样的标记。也就是说一个 utf-8 文件可能有 BOM,也可能没有 BOM。
BOM(Byte Order Mark),是 utf 编码方案里用于标识编码的标准标记,在 utf-16 里本来是 FF FE,变成 utf-8 就成了 EF BB BF。这个标记是可选的,因为 utf-8 字节没有顺序,所以它可以被用来检测一个字节流是否是 utf-8 编码的。微软做这种检测,但有些软件不做这种检测,而把它当作正常字符处理。
微软在自己的 utf-8 格式的文本文件之前加上了 EF BB BF 三个字节, Windows 上面的 Notepad 等程序就是根据这三个字节来确定一个文本文件是 ASCII 的还是 utf-8 的, 然而这个只是微软暗自作的标记, 其它平台上并没有对 utf-8 文本文件做个这样的标记。也就是说一个 utf-8 文件可能有 BOM,也可能没有 BOM。