ホームページ > バックエンド開発 > PHPチュートリアル > PHP の「json_encode」は Unicode 文字をどのように処理し、出力を制御するにはどうすればよいですか?

PHP の「json_encode」は Unicode 文字をどのように処理し、出力を制御するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-11 01:18:14
オリジナル
784 人が閲覧しました

How Does PHP's `json_encode` Handle Unicode Characters and How Can I Control the Output?

JSON エンコーディングと Unicode 文字表示

PHP の json_encode 関数を使用して「特別な」Unicode 文字を含む文字列をエンコードすると、16 進数で文字化けして表示されることがよくありますエンコードされた文字列。例:

json_encode(['foo' => '馬']);
// {"foo":"\u99ac"}
ログイン後にコピー

JSON 文字列エンコーディングについて

JSON では、文字列リテラルはバックスラッシュ (「u」) でエスケープされた Unicode コード ポイントとして表現できます。これにより、元の文字セットでのエンコーディングに関係なく、任意の文字のエンコーディングが可能になります。したがって、上記の JSON 文字列は完全に有効であり、エンコードされていない文字列 (「馬」) と同じ文字を表します。

PHP のデフォルトのエンコーディング設定

PHP の json_encode 関数が優先されます。非 ASCII 文字をエンコードするための「u」エスケープ シーケンスの使用。これは JSON 標準に準拠しており、JSON データの移植性が保証されます。必要に応じて、JSON_UNESCAPED_UNICODE フラグを指定してこの設定を無効にできます。

json_encode(['foo' => '馬'], JSON_UNESCAPED_UNICODE);
// {"foo":"馬"}
ログイン後にコピー

JSON での Unicode 表現

エスケープされた Unicode 文字とエンコードされていない Unicode 文字の両方に注意することが重要です。 JSON 内では同じ意味と値を持ちます。エンコーディングの選択は、データ構造の特定の要件によって異なります。ただし、さまざまなプラットフォームやアプリケーションとの相互運用性と互換性のために、エスケープ形式が一般的に好まれます。

以上がPHP の「json_encode」は Unicode 文字をどのように処理し、出力を制御するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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