BOM的介绍
在github上写md文件的时候,发现生成自己blog时,报出一个错误是让使用UTF-8编码,然后在Notepad++上把文件转成UTF-8时,发现菜单中有”UTF-8无BOM编码格式”。
上网查了一下BOM的定义:byte order mark
这个是为UTF-16和UTF-32准备的,用于标记字节序(byte order)。
「UTF-8」和「带 BOM 的 UTF-8」的区别就是有没有 BOM。即文件开头有没有 U+FEFF。
BOM的爱恨情仇
知乎上有个比较好的文章,讲了BOM问题,下面直接引用了原文:
作者:陈甫鸼
链接:https://www.zhihu.com/question/20167122/answer/14199022
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
首先,BOM是啥。这个就不解释了,Wikipedia上很详细。http://en.wikipedia.org/wiki/Byte_order_mark。在网页上使用BOM是个错误。BOM设计出来不是用来支持HTML和XML的。要识别文本编码,HTML有charset属性,XML有encoding属性,没必要拉BOM撑场面。虽然理论上BOM可以用来识别UTF-16编码的HTML页面ÿ