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'); ?>このコードを追加すると、出力文字列内の中国語が文字化けせずに utf-8 エンコーディングに正しく変換されます。 方法 2:
json_encode() 関数に
JSON_UNESCAPED_UNICODE パラメーターを追加します。
json_encode() を伝えるため この関数は中国語を Unicode にエンコードせず、中国語をそのまま保持します。
<?php $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo json_encode($arr, JSON_UNESCAPED_UNICODE); ?>このパラメーターを追加すると、出力される JSON 内の中国語が文字化けせずに正しく出力されるようになります。 方法 3: PHP コア設定を変更するPHP コア設定には、テキストを出力するときに使用されるデフォルトの文字エンコーディングを示すパラメータ
default_charset があります。このパラメータを UTF-8 に設定すると、JSON を出力するときに中国語が正しくエンコードされます。
<?php ini_set('default_charset', 'utf-8'); $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo json_encode($arr); ?>JSON 内の中国語が文字化けしないように、JSON を出力する必要があるスクリプトにこのコードを挿入します。 結論Web 開発を行う場合、データ送信に JSON 形式を使用するのが非常に一般的です。 PHP で、
json_encode() 関数を使用してオブジェクトを JSON 形式の文字列にシリアル化すると、中国語の文字化けが表示されることがあります。この記事では、中国語を手動でエンコードする、
json_encode() のパラメータを設定する、および PHP コア設定の
default_charset パラメータを変更するという 3 つの解決策を紹介します。これらの方法は、JSON 中国語の文字化けの問題を効果的に解決でき、実際の状況に応じて具体的な用途を選択できます。
以上がPHPオブジェクトをJSON中国語の文字化けコードに変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。