EditPlus保存选utf-8 bom就是文本文件保存时的utf-8
作者:admin 时间:2021-8-24 12:38:22 浏览:现在各种各样的编辑器,保存文件时如何选择编码格式,也是一大问题,如果选择不对,那么可能对程序的运行就会产生影响。
我在用Wordpress时修改文件后发生过很多次这样的事情,用记事本编辑的文件能运行正常,但改用EditPlus编辑后就运行出错,这明显就是保存的文件编码问题了。
后来经常多次变换保存方式,才知道,EditPlus保存选utf-8 bom就是文本文件保存时的utf-8。EditPlus保存选utf-8并不是文本文件保存时的utf-8。
这就让我有些好奇了,utf-8 bom 与 utf-8 有什么不同?后来经过查阅相关资料,才明白它们之间的区别。
先看图
内容都一样 ,为什么相差了3个字节呢 ? 再看下图 。
多出来的 ef bb bf 就是上面相差三个字节的原因 。
为什么 utf-8 bom 要多这三个字节呢 ?
BOM——Byte Order Mark,就是字节序标记。
bom是为utf-16和utf-32准备的,用于标记字节顺序。微软在utf-8中使用bom是因为这样可以把UTF-8和ASCII等编码区分开来,Windows就是使用BOM来标记文本文件的编码方式的,但这样的文件在Windows之外的操作系统里会带来问题。
UTF-8 BOM头又是什么
UTF-8以字节为编码单元因此不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式。字符 "Zero Width No-Break Space" 的 UTF-8 编码是 EF BB BF。所以如果接收者收到以 EF BB BF 开头的字节流,就知道这是 UTF-8编码了。
因此UTF-8编码的字符串开头处的三个bytes 0xef,0xbb,0xbf就称为UTF-8 BOM头。
总结
前面说了那么多,想必大家也就大致了解了有关utf-8 bom与utf-8的关系了吧,也就明白了为什么EditPlus保存选utf-8 bom就是文本文件保存时的utf-8了。
您可能对以下文章也感兴趣
- 站长推荐