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