ホームページ  >  記事  >  バックエンド開発  >  Unicode エスケープせずに PHP JSON 出力の UTF-8 文字をエンコードするにはどうすればよいですか?

Unicode エスケープせずに PHP JSON 出力の UTF-8 文字をエンコードするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 20:51:03277ブラウズ

How to Encode UTF-8 Characters in PHP JSON Output without Unicode Escaping?

PHP JSON 出力での UTF-8 の保持

質問:

PHP の json_encode 関数が非エスケープされるのを防ぐにはどうすればよいですか? -ASCII 文字を Unicode シーケンスとして使用しますか?必要な出力は、Unicode シーケンスではなく、UTF-8 でエンコードされた文字です。たとえば、値「á」を含む配列は、{"a":"u00e1"} ではなく、{"a":"á"} としてエンコードする必要があります。

答え:

JSON 仕様では両方のエンコード形式が許可されていますが、{"a":"u00e1"} と {"a":"á"} は JSON デコーダーによって同等に扱われます。

PHP バージョン 5.4 以降の場合、json_encode JSON_UNESCAPED_UNICODE オプションを提供します。このオプションは、エスケープせずにプレーンな UTF-8 エンコード文字を出力します。

<code class="php">$json = json_encode($arr, JSON_UNESCAPED_UNICODE);</code>

古い PHP バージョンの場合は、次のオプションを検討してください:

  • カスタム JSON エンコーダ:非 ASCII 文字の文字エスケープを省略するカスタム JSON エンコーダを実装します。
  • Pear の JSON エンコーダ: 行 349 ~ 433 を削除して Pear JSON エンコーダを変更します。このセクションにはエスケープ ロジックが含まれています。

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

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