1.什么是BOM
BOM是用来判断文本文件是哪一种Unicode编码的标记,其本身是一个Unicode字符(\"大众\uFEFF\"大众),位于文本文件头部。
在不同的Unicode编码中,对应的bom的二进制字节如下:
FE FF UTF16BEFF FE UTF16LEEF BB BF UTF8
以是我们可以根据文件头部的几个字节和上面的表格对应来判断该文件是哪种编码形式。
2.存在的问题
虽然BOM字符起到了标记文件编码的浸染但是他并不属于文件的内容部分,以是会产生一些问题:
1.在某些利用场景下就会有问题。例如我们把几个JS文件合并成一个文件后,如果文件中间含有BOM字符,就会导致浏览器JS语法缺点。
2.PHP就不能识别bom头,PHP并不会忽略BOM,以是在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。根据嵌入式措辞的特点,这串字符将被直接实行(显示)出来。由此造成纵然页面的top padding 设置为0,也无法让全体网页紧贴浏览器顶部,由于在html一开头有这3个字符呢!
3. 如何去掉UTF8编码的记事本文件的BOM头
利用notepad++的时候选择设置无BOM头的UTF8编码