我在utf-8编码下面从来就没出过问题。所以,如果你是gbk编码,试试这个:


 $str = '中文';
$str = iconv("gbk", "utf-8", $str);
echo json_encode([$str]);

8月32日 answered 10 years, 2 months ago

把要转成json的中文数组作为参数传递给jsonify函数


 function jsonify($arr){
    foreach($arr as $key=>$value){
        $arr[$key]=url_encode($value);
}

function url_encode($str) {
    if(is_array($str)) {
        foreach($str as $key=>$value){
            $str[urlencode($key)] = url_encode($value);
        }
    }else{
        $str = urlencode($str);
    }

    return $str;
}

神ID出没 answered 10 years, 2 months ago

楼主可以先对中文进行 urlencode ,最后再 urldecode 就可以了。

参考: php中json_encode中文编码问题

天朝萌化大神 answered 10 years, 2 months ago


 \u738b 是Unicode编码,如果在js中可以直接显示不用转换,不过也可以json_encode($arr, JSON_UNESCAPED_UNICODE);//php5.4+

神隐的四叶 answered 10 years, 2 months ago

Your Answer