您的位置:首页 > 编程语言 > PHP开发

PHP json_decode中文转义的问题

2015-11-18 14:38 519 查看
默认情况下PHP的 json_decode 方法会把特殊字符进行转义,还会把中文转为Unicode编码形式。在有些情况下不希望进行这种转义。

对于PHP5.4+版本,json_decode函数第二个参数,可以用来限制转义范围。要限制中文,使用JSON_UNESCAPED_UNICODE参数。

json_encode($a, JSON_UNESCAPED_UNICODE);


对于PHP5.3及以前版本,可以用如下方式转回中文:

$originstr = '{"name":"张三"}';
$jsonobject = json_decode($originstr);
// badstr: {"name":"\u5f20\u4e09"}
$badstr = json_encode($jsonobject);
// goodstr: {"name":"张三"}
$goodstr = preg_replace_callback("#\\\u([0-9a-f]{4})#i", function($matches){
return iconv('UCS-2', 'UTF-8', pack('H4', $matches[1]));
}, $badstr);


本文参考了http://blog.aizhet.com/web/1159.html,在其基础上做了修改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php json encode