BOM问题-对于php的影响

 

 

甲.BOM说明

BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记。这个标记是可选的,UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明当前编码方式。但如果文件本身采用UTF-8来编码,则BOM对文件毫无作用,所以BOM仅为可选项。

乙.对PHP的影响

多数情况下软件会检测到BOM并且忽略,不对BOM做处理。但有些软件不会忽略BOM,反而对BOM做解释,导致字节流处理异常。比如PHP中把它当作正常字符处理,这个时候就会出现解析错误的情况。如下图

 BOM问题-对于php的影响_第1张图片

 

 

错误提示session_start()出现错误,使用notepad++打开源代码,发现代码无问题。

 BOM问题-对于php的影响_第2张图片

 

 

 

 

 

但出现该问题说明session_start()前面肯定存在BOM。按照网上教程调整到UTF-8编码后并未出现EF BB BF字符,原因未知。

 

丙.解决方法:

1.在编辑工具中调整UTF-8无BOM格式编码保存。

2.将光标移到session_start()前,按下回车然后删除。这样可以删除BOM标识。

 

 

你可能感兴趣的:(BOM问题-对于php的影响)