BOM——Byte Order Mark,就是字节序标记

  在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。

  UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。


 

检查文本文件的格式

第一种方法:打开notePad++,点击菜单栏的“格式”,显示当前文件的格式,如下图所示:

 

注意:是UTF-8 无BOM格式,还是UTF-8 格式编码

第二种方法:观察使用notePad++打开的文件,右下角会显示编码格式,如下图所示:

 

  对于BOM和无BOM文件,无法直接观察有什么不同,需要借用UE软件使用十六进制查看,对于UE使用切换为十六进制编辑,点击菜单栏中编辑 –> 十六进制功\(X) –> 十六进制编辑(H),如下图所示:

 

切换为十六进制,可以观察“EF BB BF”开头

版权声明:本文为zhuitian原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhuitian/p/11253213.html