json_decode控制字符处理

问题

    php中使用json_decode时,发现decode出来的结果是NULL。看日志,传入的参数的确是一个合法的json字符串,但decode之后却是为空,实在是让人抓不住头脑。

调试

    想到php里面有个 json_last_error 的方法,根据官方说法,会返回 JSON 编码解码时最后发生的错误。加上后一看,果然,decode出问题了。返回的错误是 JSON_ERROR_CTRL_CHAR,表示控制字符错误,可能是编码不对。

    这难道是字符串里面混入了控制字符?不多想,遂上网查了下解决方法。

解决

    解决方法其实很简单,就是执行一个正则表达式搜索和替换控制字符

preg_replace( '/[\x00-\x1F]/','',$str);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容