ホームページ バックエンド開発 PHPチュートリアル PHP で中国語の JSON データが文字化けする問題を解決する方法

PHP で中国語の JSON データが文字化けする問題を解決する方法

Mar 09, 2024 am 08:48 AM
- php - json ・文字化け

PHP で中国語の JSON データが文字化けする問題を解決する方法

PHP での JSON データの中国語文字化け問題を解決する方法

PHP を使用して開発をしていると、データを JSON 形式で出力する場面によく遭遇します。しかし、中国語データを返す際に文字化けが発生し、フロントエンドページの表示やデータ処理に支障をきたす場合があります。この記事では、開発者がこの一般的な問題にうまく対処できるようにするために、PHP で中国語の文字化けした JSON データの問題を解決するいくつかの方法を紹介します。一般的に使用されるいくつかのソリューションを、具体的なコード例とともに以下で詳しく紹介します。

方法 1: json_encode 関数を使用するときに 2 番目のパラメーター JSON_UNESCAPED_UNICODE を設定する

PHP では、json_encode 関数を使用して配列またはオブジェクトを JSON 形式の文字列に変換するときに、 2 番目のパラメータ JSON_UNESCAPED_UNICODE は、中国語の文字が Unicode エンコードにエスケープされ、文字化けが発生するのを防ぎます。以下はサンプル コードです:

$data = array(
    'name' => '张三',
    'age' => 30
);

echo json_encode($data, JSON_UNESCAPED_UNICODE);
ログイン後にコピー

この例では、json_encode を通じて $data 配列を JSON 形式の文字列に変換し、中国語の文字がエスケープされずに元の中国語の文字が残るように JSON_UNESCAPED_UNICODE パラメータを設定します。 。

方法 2: ヘッダー関数を使用して、Content-Type を application/json に設定します。

JSON データを返す場合、ヘッダー関数を使用して、応答の Content-Type を次のように設定できます。 application/json を指定してブラウザに通知します。返されるデータは JSON 形式です。これにより、ブラウザーは返された JSON データを正しく解析し、文字化けを回避できます。以下はサンプル コードです:

$data = array(
    'name' => '李四',
    'age' => 25
);

header('Content-Type: application/json; charset=utf-8');
echo json_encode($data);
ログイン後にコピー

この例では、まず header 関数を使用して Content-Type を application/json に設定し、エンコードを utf-8 に指定してから、json_encode を使用して$data 配列を JSON に変換 返されるフォーマット文字列。

方法 3: mb_convert_encoding 関数を使用してエンコードを変換する

JSON_UNESCAPED_UNICODE パラメーターが設定されているか、Content-Type が application/json に設定されている場合でも、文字化けが発生することがあります。現時点では、mb_convert_encoding 関数を使用してデータを UTF-8 エンコーディングに変換してみることができます。以下はサンプルコードです:

$data = array(
    'name' => '王五',
    'age' => 35
);

$jsonData = json_encode($data);

$jsonData = mb_convert_encoding($jsonData, 'UTF-8', 'UTF-8');

echo $jsonData;
ログイン後にコピー

この例では、まず json_encode を使用してデータを JSON 形式の文字列に変換し、次に mb_convert_encoding によって UTF-8 エンコーディングに変換し、最後にそれを先頭に返します。 - 終了ページ。

概要

開発中に PHP から返される中国語の文字化けした JSON データの問題に遭遇した場合は、上記の方法を試して解決できます。 JSON_UNESCAPED_UNICODE パラメーターを設定するか、Content-Type を application/json に設定するか、mb_convert_encoding 関数を使用してエンコーディングを変換することにより、中国語の文字化けの発生を効果的に回避できます。この記事で紹介した方法が、同様の問題を抱えている開発者の助けとなり、データ送信中に漢字の特徴を正確に保持できることを願っています。

以上がPHP で中国語の JSON データが文字化けする問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 警告: include(): ソリューションを開けませんでした PHP 警告: include(): ソリューションを開けませんでした Jun 23, 2023 am 10:06 AM

PHP 警告: include(): ソリューションを開けませんでした

PHP$_SERVER['HTTP_REFERER'] を使用してページのソース アドレスを取得します PHP$_SERVER['HTTP_REFERER'] を使用してページのソース アドレスを取得します Aug 18, 2023 pm 09:05 PM

PHP$_SERVER['HTTP_REFERER'] を使用してページのソース アドレスを取得します

PHPでメール認証コードの送信・検証方法を実現 PHPでメール認証コードの送信・検証方法を実現 Sep 13, 2023 am 11:16 AM

PHPでメール認証コードの送信・検証方法を実現

PHPのarray_walk_recursive()関数の使い方の詳しい説明 PHPのarray_walk_recursive()関数の使い方の詳しい説明 Jun 27, 2023 pm 02:35 PM

PHPのarray_walk_recursive()関数の使い方の詳しい説明

PHP8 で一貫性のある型エラーを使用してコードの信頼性を向上させるにはどうすればよいですか? PHP8 で一貫性のある型エラーを使用してコードの信頼性を向上させるにはどうすればよいですか? Oct 16, 2023 am 09:18 AM

PHP8 で一貫性のある型エラーを使用してコードの信頼性を向上させるにはどうすればよいですか?

Apache PHP コンパイルおよびインストール ガイド Apache PHP コンパイルおよびインストール ガイド Mar 09, 2024 am 08:33 AM

Apache PHP コンパイルおよびインストール ガイド

PHP の MBstring 拡張機能を使用するにはどうすればよいですか? PHP の MBstring 拡張機能を使用するにはどうすればよいですか? May 31, 2023 pm 02:51 PM

PHP の MBstring 拡張機能を使用するにはどうすればよいですか?

PHPで単純な挿入操作を実装するにはどうすればよいですか? PHPで単純な挿入操作を実装するにはどうすればよいですか? Jun 02, 2023 am 08:24 AM

PHPで単純な挿入操作を実装するにはどうすればよいですか?

See all articles