首頁 >後端開發 >PHP問題 >PHP中json_decode函數中文亂碼如何解決?

PHP中json_decode函數中文亂碼如何解決?

Guanhui
Guanhui原創
2020-07-21 16:00:175506瀏覽

PHP中json_decode函數中文亂碼如何解決?

PHP中json_decode函數中文亂碼如何解決?

PHP中json_decode函數中文亂碼解決方法:1、使用函數「urldecode()」將資料解碼,解碼後再進行JSON解碼,其函數的作用是解碼已編碼的URL字串;2 、在JSON編碼的時候,不要將中文編碼即可。

範例程式碼

<?php
    $testJSON=array(&#39;name&#39;=>&#39;中文字符串&#39;,&#39;value&#39;=>&#39;test&#39;);
    echo json_encode($testJSON);
?>

查看输出结果为:
{“name”:”\u4e2d\u6587\u5b57\u7b26\u4e32″,”value”:”test”}
可见即使用UTF8编码的字符,使用json_encode也出现了中文乱码。解决办法是在使用json_encode之前把字符用函数urlencode()处理一下,然后再json_encode,输出结果的时候在用函数urldecode()转回来。具体如下:


<?php
    $testJSON=array(&#39;name&#39;=>&#39;中文字符串&#39;,&#39;value&#39;=>&#39;test&#39;);
    //echo json_encode($testJSON);
    foreach ( $testJSON as $key => $value ) {
        $testJSON[$key] = urlencode ( $value );
    }
    echo urldecode ( json_encode ( $testJSON ) );
?>


查看输出结果为:



{“name”:”中文字符串”,”value”:”test”}

推薦教學:《PHP

以上是PHP中json_decode函數中文亂碼如何解決?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn