该字符中含了ASCII码ETB控制符,即\x17导致json解析失败
解决方案:
$params = preg_replace('/[\x00-\x1F]/', '', $params);
$data = json_decode($params, true);
echo $errorinfo = json_last_error();
1、先打印报错信息
2、看返回的报错值
3、对应报错值查询表处理
PS:json报错表
0 = JSON_ERROR_NONE
1 = JSON_ERROR_DEPTH
2 = JSON_ERROR_STATE_MISMATCH
3 = JSON_ERROR_CTRL_CHAR
4 = JSON_ERROR_SYNTAX
5 = JSON_ERROR_UTF8
当JSON解析过程中遇到ASCII码ETB(x17)控制字符时,会导致解析失败。解决方案是使用正则表达式移除这些控制字符,如`preg_replace('/[x00-x1F]/','',$params)`,然后进行JSON解码。通过`json_last_error()`获取并处理错误信息,例如检查错误代码对应的含义,以便于调试和修复。
340

被折叠的 条评论
为什么被折叠?



