解决 PHP 中不可见字符导致 JSON 解析错误

1、错误描述

例如如下一段合法的 JSON 字符串:

json
1
{"code":200,"name":"这是中文字符"}

使用如下代码解析:

PHP
1
$data = json_decode(mb_convert_encoding($txt, 'UTF-8'), true);

报错 JSON 不合法。

2、解决方法

问题有可能是存在不可见字符,可以尝试去除:

PHP
1
$data = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', mb_convert_encoding($txt, 'UTF-8')), true);

根据测试可以解决该问题,如果仍不能解决,可以尝试重新检查斜杠/反斜杠是否符合语法。

解决 PHP 中不可见字符导致 JSON 解析错误

https://blog.tsinbei.com/tw/archives/1295/

文章作者
Hsukqi Lee
发布于

2023-06-10

修改于

2023-06-22

许可协议

CC BY-NC-ND 4.0

# 学习  建站  编程  PHP  网站  Linux  软件

评论

昵称
邮箱
网址
暂无