美文网首页
PHP出现BOM情况(\ufeff)小红点

PHP出现BOM情况(\ufeff)小红点

作者: 一双鞋两双 | 来源:发表于2019-04-12 13:00 被阅读0次

一、出现问题

1、今天在接中转接口时突然发现返回的数据多了三个字符,使用在线JSON校验工具时发现数据前面多了个小红点

2、刚以为是本地代码CURL的问题,后来经过检测发现不是本地代码的问题,使用在线HTTP请求发现依旧会携带\ufeff(小红点)问题,初步排除是本地代码问题,只可能是接口端问题。

3、经过百度查询,发现有很多同僚遇到相同的问题,主要是引入的文件或请求接口的文件编码格式是UTF-8带有BOM的文件,因为使用的TP框架,也不知道具体是哪个文件问题。

二、解决办法

    1、治标不治本:

    使用trim()方法将BOM清除

    2、治本

    找到带有BOM的文件,用notepad++工具转换成不带有BOM的文件

    在linux下可以通过下面两条命令查找带BOM格式文件和将文件转换成无BOM格式:

    # 在项目根目录,查找项目中带BOM格式文件并显示

    grep -r -I -l $'^\xEF\xBB\xBF'.

    /# 在存在BOM格式文件的目录,将目录下所有文件去除BOM头

    # (注意:不能对图片进行此操作,否则会导致图片打不开)

    find . -typef -execsed -i's/\xEF\xBB\xBF//'{} \;

-----------------------------------------------------------------------------------------------------------------------------------------

我的刚解决了,原来是在配置文件中有两个文件的编码是UTF-8带有BOM的,使用notepad++进行文件转编码后,咦,问题解决了。哈哈哈,高兴,各位如果也发生这种事情,先去看看配置文件是不是也有带有BOM的文件。

三、附录

    1、PHP在5.2之后默认的都是不带有BOM的文件,在使用json_decode()的时候如果是返回带有BOM的数据,json_deconde()将会返回null

相关文章

网友评论

      本文标题:PHP出现BOM情况(\ufeff)小红点

      本文链接:https://www.haomeiwen.com/subject/ukfcwqtx.html