PHP - json_encode中文乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP - json_encode中文乱码相关的知识,希望对你有一定的参考价值。

调用json_encode()函数将JSON对象转换为字符串, 如果其中包含有中文,默认会输出为unicode编码,如\u8023

解决方案1

升级到php 5.4,在json_encode()函数中,第二个参数指定JSON_UNESCAPED_UNICODE即可。

解决方案2

对于低版本PHP,对unicode码再进行解码,解码函数如下:

function decodeUnicode($str)

{

    return preg_replace_callback(‘/\\\\u([0-9a-f]{4})/i‘,

        create_function(

            ‘$matches‘,

            ‘return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");‘

        ),

        $str);

}

 

例子如下:

$arr = array(‘name1‘:"中文",‘name2‘:‘abc12‘);

$jsonstr = decodeUnicode(json_encode($arr));

以上是关于PHP - json_encode中文乱码的主要内容,如果未能解决你的问题,请参考以下文章

PHP json_encode中文乱码解决方法

PHP json_encode 中文乱码

PHP json_encode 中文乱码

php json_encode() 输出乱码问题

PHP 数组中出现中文乱码,json_encode返回结果为null 或false

PHP JSON_ENCODE使用后中文变成百分号乱码了