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

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

Barbara Streisand
リリース: 2024-10-26 20:51:03
オリジナル
376 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート