首页 > PHP教程 > php开发知识文章

PHP转json字符串(json_decode)不转义中文

本文主要介绍了PHP转json字符串(json_decode)不转义中文的方法,

分析了php5.4+及5.3版本针对json_decode实现不转义中文的代码,需要的朋友参考下。

默认PHP的 json_decode 方法会把特殊字符进行转义,也会把中文转为Unicode编码形式。

有时我们需要限制 json_decode 方法对于中文的转义。

对于PHP5.4+版本,json_decode函数第二个参数,就是用来限制转义范围。

要限制中文,使用JSON_UNESCAPED_UNICODE参数。json_encode($a, JSON_UNESCAPED_UNICODE);

对于PHP5.3版本,先把ASCII 127以上的字符转换为HTML数值,来避免被json_decode函数转码:

function my_json_encode($arr)
{
array_walk_recursive($arr, function (&$item, &$key) {
if (is_string($item)) {
$item = mb_encode_numericentity($item, array(0x80, 0xffff, 0, 0xffff), 'UTF-8');
};
});
return mb_decode_numericentity(json_encode($arr), array(0x80, 0xffff, 0, 0xffff), 'UTF-8');
}

$re = my_json_encode(array('1'=>'aa','2'=>'我们'));
echo $re; //输出{"1":"aa","2":"我们"}

PHP转json字符串(json_decode)不转义中文

PS:这里再为大家推荐比较实用的json在线工具供大家参考使用:

JSON在线格式化工具:http://dev.yuqingqi.com/json/

以上就是本文PHP转json字符串(json_decode)不转义中文的全部内容了,希望本文所述对大家PHP程序设计有所帮助。

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。