PHP で中国語の JSON データが文字化けする原因と解決策
Web アプリケーションの人気に伴い、データ交換形式として JSON を使用することが非常に一般的になりました。ただし、PHP 開発では、誤ったエンコード変換や一貫性のないエンコード形式が原因で、中国語の JSON データが文字化けする問題が発生することがあります。この記事では、PHP で中国語の JSON データが文字化けする原因を分析し、解決策を示します。
PHP が JSON データを処理する場合、デフォルトでは UTF-8 エンコーディングを使用します。 JSON データ内に他のエンコードされた中国語文字が含まれている場合、文字化けが発生します。この場合、通常はトランスコーディングが必要になります。
中国語の JSON データが文字化けするもう 1 つの理由は、データ ソース自体のエンコードが PHP のデフォルトのエンコードと一致していないことです。 UTF-8以外でエンコードされたデータをPHPで読み込んだ後、そのままJSON形式で出力すると文字化けが発生します。
データ ソースのエンコードが PHP のデフォルトのエンコードと一致しない場合は、データ ソースを読み取るときにエンコード変換を実行する必要があります。データ。 mb_convert_encoding()
関数を使用して、データ ソース エンコーディングを UTF-8 に変換できます。サンプルコードは以下のとおりです。
$data = file_get_contents('data.txt'); $data = mb_convert_encoding($data, 'UTF-8', 'GB2312');
json_encode()
関数を使用してJSONデータを生成する場合、##を指定できます。 #JSON_UNESCAPED_UNICODE 中国語の文字がエスケープされないようにし、文字化けを回避するオプション。サンプルコードは以下のとおりです。
$jsonData = json_encode($data, JSON_UNESCAPED_UNICODE);
header('Content-Type: application/json; charset=utf-8');
以上がPHP で中国語の JSON データが文字化けする理由と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。