非 ASCII 文字に対する PHP の json_encode 出力での UTF-8 エンコーディングの確保
mb_internal_encoding および utf8_encode を通じて UTF-8 エンコーディングを有効にする努力にもかかわらず, json_encode は、結果の JSON 文字列で Unicode エスケープされた文字を返し続けます。この問題は、さまざまなアプローチで解決できます。
PHP 5.4 の JSON_UNESCAPED_UNICODE オプション
PHP 5.4 以降を使用している場合は、json_encode を呼び出すときに JSON_UNESCAPED_UNICODE オプションを利用します。このオプションは Unicode エスケープを明示的に無効にし、予想される出力 {"a":"á"}.
Custom JSON Encoder with Non-ASCII Support
For以前の PHP バージョンでは、非 ASCII 文字をエスケープしないカスタム JSON エンコーダーを作成します。このアプローチにより、JSON 文字列が元の入力を正確に表すことが保証されます。
Pear の JSON エンコーダーの変更
代替ソリューションには、行 349 ~ 433 を削除して Pear の JSON エンコーダーを変更することが含まれます。この変更により、エンコーダ内での Unicode エスケープが効果的に無効になり、目的の出力が得られます。
結論
これらの手法は、UTF-8 でエンコードされた JSON 文字列を出力する実行可能な方法を提供し、 Unicode エスケープを行わずに非 ASCII 文字を正確に表現します。
以上があなたの記事に適した質問ベースのタイトルをいくつか紹介します。 * PHP 出力で json_encode が依然として非 ASCII 文字をエスケープするのはなぜですか? * PHP の json_encode 出力で UTF-8 エンコーディングを保証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。