ホームページ  >  記事  >  バックエンド開発  >  PHPのJSONを中国語に変換する方法

PHPのJSONを中国語に変換する方法

藏色散人
藏色散人オリジナル
2021-09-17 10:48:493429ブラウズ

php json 中国語変換方法: 1. 中国語フィールドを Urlencode します; 2. json_encode 関数を使用してエンコードします; 3. urldecode を使用して結果を処理します。

PHPのJSONを中国語に変換する方法

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、Dell G3 コンピューター

方法phpのjsonを中国語に変換しますか? PHP は通常、中国語の JSON 形式文字列をどのように変換しますか?

JSON 形式文字列を変換する方法については、PHP マニュアルに 2 つの関数が記載されています:

json_encode: 変数の JSON エンコーディング

json_decode: 文字列を JSON 形式でエンコードします

例を見てみましょう:

 $arr = ['a', 'b', 'c'];echo json_encode($arr);

出力は次のとおりです:

["a","b","c"]

ただし、中国語の文字が入力されると、

 $arr = [    '世界',    '你好',];echo json_encode($arr);

出力結果は次のとおりです:

["\u4e16\u754c","\u4f60\u597d"]

この結果は明らかに私たちが望んでいたものではありませんが、なぜこのようなことが起こるのでしょうか?値に中国語が含まれている場合、PHP がその値に対して json エンコードを実行すると、最下層で中国語に対して Unicode エンコードが実行され、結果が判読できなくなるためです。

方法 1

urlencode メソッドと urldecode メソッドを使用すると、unicode へのトランスコード プロセスをバイパスできます。最初に中国語フィールドを urlencode し、次に json_encode を実行し、最後に urldecode を使用して結果を処理します。正常に動作します 中国語を表示します。具体的なコードは次のとおりです:

 $arr = [    '世界',    '你好',];echo urldecode(json_encode(array_map('urlencode', $arr)));

出力結果は次のとおりです:

["世界","你好"]

メソッド 2

PHP5.4 バージョン以降、公式は Json に新しいオプションを追加しました。 JSON_UNESCAPED_UNICODE。このオプションを追加すると、中国語は自動的にエンコードされなくなります。具体的なコードは次のとおりです:

 $arr = [    '世界',    '你好',];echo json_encode($arr, JSON_UNESCAPED_UNICODE);

出力は次のとおりです:

["世界","你好"]

ほら、これが私たちが望む結果です:)

Note

には、注意 残念ながら、json_encode と json_decode は UTF-8 でエンコードされた文字のみをサポートするため、json 関数を使用する場合は gbk 文字を変換する必要があります。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPのJSONを中国語に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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