ホームページ  >  記事  >  データベース  >  PHP 配列を JSON にエンコードするときに UTF-8 文字を処理するにはどうすればよいですか?

PHP 配列を JSON にエンコードするときに UTF-8 文字を処理するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 13:50:54897ブラウズ

How to Handle UTF-8 Characters When Encoding a PHP Array to JSON?

PHP での UTF-8 文字との JSON エンコーディングの戦い

PHP でのデータベース処理の領域では、作業中に課題に遭遇する可能性があります。アクセント付き文字と UTF-8 エンコーディング。アクセント付き文字を含むテーブルから行を取得し、列エンコーディングが latin1_swedish_ci として構成されているシナリオを考えてみましょう。

問題の理解

表示の試行utf8_encode() を使用してフェッチされた行は最初は機能しているように見えますが、その後 json_encode() を使用して JSON エンコードを行うと、影響を受けるフィールドが null 値になります。これは、json_encode() が mysql_fetch_assoc() を使用してエンコードされた UTF-8 文字を処理できない可能性があるために発生します。

UTF-8 を保持する解決策

この問題を解決するには、以下を使用します。次のアプローチ:

  1. エンコードされた結果を保存するために $rows という名前の空の配列を作成します。
  2. while($row = mysql_fetch_assoc($result)) を使用してデータベースの結果セットを反復処理します。 .
  3. 各行について、$rows[] = array_map('utf8_encode', $row) を使用して、すべての要素に utf8_encode() を適用します。この手順では、アクセント付き文字を UTF-8 に適切に変換します。
  4. 最後に、echo json_encode($rows) を使用して $rows 配列を JSON にエンコードします。

このメソッドを実装すると、JSONエンコーディングは UTF-8 文字を適切に表現し、アクセント付き文字を保持し、影響を受けるフィールドの null 値を防ぎます。

以上がPHP 配列を JSON にエンコードするときに UTF-8 文字を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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