json_decode返回值为NULL的解决方法

  1. 使用 json_last_error 判断error 值及对应错误原因。文档
  2. 如果为 3,可以使用如下方式过滤掉非 utf8 字符。
preg_match('/[\x00-\x1F\x80-\x9F]/u', $str, $match);
// 将得到字符串 base64 转码即可找到该不可显示的特殊字符

找到特殊字符 \u001f
发现 mysql 在 json 字段中存入该字段会显示为可见字符。

最后发现该问题为旧版本bug,记录如上。
mysql 说明:https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-21.html

参考:

  1. https://www.cnblogs.com/wt645631686/p/8419932.html

猜你喜欢

转载自blog.csdn.net/qq_35958788/article/details/92410581