PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问
发布时间:2020-12-12 20:16:47 所属栏目:PHP教程 来源:网络整理
导读:昨天同事遇到一个奇怪的问题,就是以下代码,无法通过JSON校验,也无法通过PHP的json_decode函数解析。 代码如下: 可能聪明的你已经猜到其中包含有不看见的特殊字符,在vim下查看: 代码如下: "title": "", "pinyin": "" }] 发现在“title”前面有一个字符 ,
昨天同事遇到一个奇怪的问题,就是以下代码,无法通过JSON校验,也无法通过PHP的json_decode函数解析。 代码如下:
可能聪明的你已经猜到其中包含有不看见的特殊字符,在vim下查看:
代码如下: "title": "",
"pinyin": ""
}
]
发现在“title”前面有一个字符在Linux下通过xxd命令查看文件内容的十六进制: 代码如下:
可以看到刚才那个"title"前面的特殊字符十六进制为:ef bb bf,正是标记UTF-8的BOM。BOM的含义如下:
代码如下: 发现问题解决就很容易了,查找删除BOM就OK了,linux下BOM相关的命令有: VIM的BOM操作 代码如下: 查找UTF-8编码中的BOM 代码如下:
还可以在svn的钩子中禁止提交BOM(以下代码来自网络,没校验)
代码如下: REPOS="$1" TXN="$2" SVNLOOK=/usr/bin/svnlook FILES=`$SVNLOOK changed -t "$TXN" "$REPOS" | awk {'print $2'}` for FILE in $FILES; do CONTENT=`$SVNLOOK cat -t "$TXN" "$REPOS" "$FILE"` if echo $CONTENT | head -c 3 | xxd -i | grep -q '0xef,0xbb,0xbf'; then echo "BOM!" 1>&2 exit 1 fi done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- php专用数组排序类ArraySortUtil用法实例
- PHP JSON_DECODE/JSON_ENCODE中文内容为NULL或乱
- php – Hashing&Salting – 验证登录w / coo
- PHP利用hash冲突漏洞进行DDoS攻击的方法分析
- php – Symfony 2服务器部署致命错误:它尝试打开
- php中用socket模拟http中post或者get提交数据的示
- php – 使用mysql_last_id()的竞争条件
- java.lang.IllegalStateException: File has bee
- php – 将嵌套集合模型嵌入到隐藏的“封闭”子树
- Cakephp为多个复选框子组设置默认值
热点阅读