Heim  >  Artikel  >  Backend-Entwicklung  >  Wie löse ich die verstümmelten chinesischen Zeichen der json_decode-Funktion in PHP?

Wie löse ich die verstümmelten chinesischen Zeichen der json_decode-Funktion in PHP?

Guanhui
GuanhuiOriginal
2020-07-21 16:00:175308Durchsuche

Wie löse ich die verstümmelten chinesischen Zeichen der json_decode-Funktion in PHP?

Wie löse ich den chinesischen verstümmelten Code der json_decode-Funktion in PHP?

Lösung für verstümmelte chinesische Zeichen der json_decode-Funktion in PHP: 1. Verwenden Sie die Funktion „urldecode()“, um die Daten zu dekodieren, und führen Sie dann nach der Dekodierung eine JSON-Dekodierung durch codierte URL-Zeichenfolge; 2. Codieren Sie beim Codieren von JSON einfach kein Chinesisch.

Beispielcode

<?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”}

Empfohlenes Tutorial: „PHP

Das obige ist der detaillierte Inhalt vonWie löse ich die verstümmelten chinesischen Zeichen der json_decode-Funktion in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn