PHP json中文unicode解码

最近更新PHP版本到PHP5.5.10 用以前的代码出现了点小问题

出现这样的一个小问题
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in
最后查阅文档,PHP新版不推荐使用preg_replace(): e模式
推荐使用 preg_replace_callback
修改成这样就可以了。

$st =  preg_replace_callback("#\\\u([0-9a-f]{4})#i", function($matchs){ return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));}, $str);

出现在这种问题的原因,就是因为JSon中文解码的问题的,终于现在不用那么麻烦了,PHP新版本Json_encode函数加了好多常量参数
这样就不会能中文unicode编码了

echo "Unicode: ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n";

更新日志
版本    说明
5.4.0    options 参数增加常量: JSON_PRETTY_PRINT,JSON_UNESCAPED_SLASHES, 和JSON_UNESCAPED_UNICODE。
5.3.3    options 参数增加常量:JSON_NUMERIC_CHECK。
5.3.0    增加 options 参数.

 

你可能感兴趣的:(PHP)