Web 開発を行う場合、JSON
は、オブジェクトを JSON
データに変換し、AJAX
を通じて非同期的に送信するためによく使用されます。ただし、JSON
形式の出力に PHP バックグラウンドを使用すると、オブジェクトが JSON
形式に変換された後に中国語の文字化けが発生する可能性があります。この記事では、この問題を解決する方法について説明します。
PHP コードでは、json_encode()
関数を使用してオブジェクトを JSON 形式の文字列に変換し、echo# を渡します。 ## 出力。ただし、JSON に中国語が含まれる場合、次の図に示すように文字化けが発生します。
json_encode() 関数 mb_convert_encoding の前に
json_encode()-> を追加します。 ()、中国語を手動で utf-8 にエンコードします。
<?php $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo mb_convert_encoding(json_encode($arr, JSON_UNESCAPED_UNICODE), 'UTF-8'); ?>
json_encode() 関数に
JSON_UNESCAPED_UNICODE パラメーターを追加します。
json_encode() を伝えるため この関数は中国語を Unicode にエンコードせず、中国語をそのまま保持します。
<?php $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo json_encode($arr, JSON_UNESCAPED_UNICODE); ?>
default_charset があります。このパラメータを UTF-8 に設定すると、JSON を出力するときに中国語が正しくエンコードされます。
<?php ini_set('default_charset', 'utf-8'); $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo json_encode($arr); ?>
json_encode() 関数を使用してオブジェクトを JSON 形式の文字列にシリアル化すると、中国語の文字化けが表示されることがあります。この記事では、中国語を手動でエンコードする、
json_encode() のパラメータを設定する、および PHP コア設定の
default_charset パラメータを変更するという 3 つの解決策を紹介します。これらの方法は、JSON 中国語の文字化けの問題を効果的に解決でき、実際の状況に応じて具体的な用途を選択できます。
以上がPHPオブジェクトをJSON中国語の文字化けコードに変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。