ホームページ > バックエンド開発 > PHPチュートリアル > PHP の json_encode() 関数を使用して JSON 内の特殊文字を正しくエンコードするにはどうすればよいですか?

PHP の json_encode() 関数を使用して JSON 内の特殊文字を正しくエンコードするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-18 17:10:03
オリジナル
319 人が閲覧しました

How to Correctly Encode Special Characters in JSON with PHP's json_encode() Function?

JSON エンコーディングと特殊文字

json_encode() 関数を使用して配列をエンコードしているときに、特殊文字を含む要素が変換される場合があります。空の文字列。この動作は、著作権記号や商標記号などの文字で特に顕著です。

この問題を解決するには、すべての文字列データが JSON としてエンコードされる前に UTF-8 でエンコードされていることを確認してください。これは、array_map() を utf8_encode() 関数と組み合わせて使用​​することで実現できます。

<code class="php">$arr = array_map('utf8_encode', $arr);
$json = json_encode($arr);</code>
ログイン後にコピー

PHP マニュアルに記載されているように、json_encode() ではすべての文字列データが UTF-8 でエンコードされる必要があります。 JSON エンコードの前に配列要素を UTF-8 にエンコードすることで、JSON 出力で特殊文字が正しく表現されるようになります。

わかりやすくするために、UTF-8 を使用した場合と使用しない場合の配列のエンコード結果を比較してみましょう。エンコード:

UTF-8 なし エンコード:

<code class="php">$arr = ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"];
$json = json_encode($arr); // {"funds":null}</code>
ログイン後にコピー

UTF-8 あり エンコード:

<code class="php">$arr = array_map('utf8_encode', ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"]);
$json = json_encode($arr); // {"funds":"ComStage STOXX\u00c2\u00aeEurope 600 Techn NR ETF"}</code>
ログイン後にコピー

UTF-8 エンコーディングを適用すると、JSON 出力で特殊文字が正しく表現されます。適切なエンコードのために、一貫して utf8_encode() を使用することを忘れないでください。

以上がPHP の json_encode() 関数を使用して JSON 内の特殊文字を正しくエンコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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