1、错误描述
例如如下一段合法的 JSON 字符串:
1 | {"code":200,"name":"这是中文字符"} |
使用如下代码解析:
1 | $data = json_decode(mb_convert_encoding($txt, 'UTF-8'), true); |
报错 JSON 不合法。
2、解决方法
问题有可能是存在不可见字符,可以尝试去除:
1 | $data = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', mb_convert_encoding($txt, 'UTF-8')), true); |
根据测试可以解决该问题,如果仍不能解决,可以尝试重新检查斜杠/反斜杠是否符合语法。
解决 PHP 中不可见字符导致 JSON 解析错误
评论