ホームページ >バックエンド開発 >PHPの問題 >PHPのjson_decode関数の中国語文字化けを解決するにはどうすればよいですか?

PHPのjson_decode関数の中国語文字化けを解決するにはどうすればよいですか?

Guanhui
Guanhuiオリジナル
2020-07-21 16:00:175511ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。