千家信息网

如何解决PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问题

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"如何解决PHP中遇到BOM、编码导致json_decode函数无法解析问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况
千家信息网最后更新 2026年11月04日如何解决PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问题

本篇内容介绍了"如何解决PHP中遇到BOM、编码导致json_decode函数无法解析问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

昨天同事遇到一个奇怪的问题,就是以下代码,无法通过JSON校验,也无法通过PHP的json_decode函数解析。

复制代码 代码如下:


[
{
"title": "",
"pinyin": ""
}
]


可能聪明的你已经猜到其中包含有不看见的特殊字符,在vim下查看:

复制代码 代码如下:


[
{
"title": "",
"pinyin": ""
}
]


发现在"title"前面有一个字符,如果你之前了解过BOM,应该知道这个特殊字符就是BOM,关于其介绍可以参考另一篇文章:计算机中的字符串编码、乱码、BOM等问题详解.


在Linux下通过xxd命令查看文件内容的十六进制:

复制代码 代码如下:


0000000: 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 [. {.
0000010: ef bb bf 22 74 69 74 6c 65 22 3a 20 22 22 2c 0a ..."title": "",.
0000020: 20 20 20 20 20 20 20 20 22 70 69 6e 79 69 6e 22 "pinyin"
0000030: 3a 20 22 22 0a 20 20 20 20 7d 0a 5d 0a : "". }.].


可以看到刚才那个"title"前面的特殊字符十六进制为:ef bb bf,正是标记UTF-8的BOM。BOM的含义如下:

复制代码 代码如下:


开头字节 Charset/encoding
EF BB BF UTF-8
FE FF UTF-16/UCS-2, little endian(UTF-16LE)
FF FE UTF-16/UCS-2, big endian(UTF-16BE)
FF FE 00 00 UTF-32/UCS-4, little endian.
00 00 FE FF UTF-32/UCS-4, big-endia

发现问题解决就很容易了,查找删除BOM就OK了,linux下BOM相关的命令有:

VIM的BOM操作

复制代码 代码如下:


#添加BOM
:set bomb
#删除BOM
:set nobomb
#查询BOM
:set bomb?

查找UTF-8编码中的BOM

复制代码 代码如下:

grep -I -r -l $'\xEF\xBB\xBF' /path


还可以在svn的钩子中禁止提交BOM(以下代码来自网络,没校验)

复制代码 代码如下:


#!/bin/sh

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中遇到BOM、编码导致json_decode函数无法解析问题"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

代码 问题 字符 编码 函数 特殊 内容 十六进制 命令 就是 更多 知识 UTF-8 实用 聪明 学有所成 接下来 乱码 同事 含义 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 北京路客互联网科技有限公司 美国互联网保险保险科技 互联网科技战争 深圳互联网科技公司 互联网金融 科技金融 齐家互联网科技 善班互联网科技有限公司 科技互联网公司logo 荆州市昕露互联网络科技有限公司 中国航天科技大学国际工业互联网 辽宁互联网新科技 深圳艾果互联网通讯科技 中和天地互联网科技有限公司 上海科技产业互联网平台 山东子淼互联网科技有限公司 电子商务与互联网科技的关系 济南小医互联网科技有限公司招聘 全球科技与互联网公司市值变化 华人运通互联网科技公司 江苏根荣互联网科技 互联网金融和金融科技 佰商互联网科技有限公司 丰台科技园 互联网公司 深圳市优智互联网科技有限公司 浙南科技城互联网大厦建设工程 有人说阿里系是互联网科技企业 普陀区互联网教育科技管理办法 亚光科技低轨卫星互联网 如何强化互联网金融科技
0