JSON エンコーディングと特殊文字
json_encode() 関数を使用して配列をエンコードしているときに、特殊文字を含む要素が次の形式に変換される場合があります。空の文字列。この動作は、著作権記号や商標記号などの文字で特に顕著です。
この問題を解決するには、すべての文字列データが JSON としてエンコードされる前に UTF-8 でエンコードされていることを確認してください。これは、array_map() を utf8_encode() 関数と組み合わせて使用することで実現できます。
$arr = array_map('utf8_encode', $arr);
$json = json_encode($arr);
PHP マニュアルに記載されているように、json_encode() ではすべての文字列データが UTF-8 でエンコードされている必要があります。 JSON エンコードの前に配列要素を UTF-8 にエンコードすることで、JSON 出力で特殊文字が正しく表現されるようになります。
わかりやすくするために、UTF-8 を使用した場合と使用しない場合の配列のエンコード結果を比較してみましょう。エンコーディング:
UTF-8 なし エンコーディング:
$arr = ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"];
$json = json_encode($arr); // {"funds":null}
UTF-8 エンコーディングの場合:
$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"}
UTF-8 エンコーディングを適用することにより、特殊文字は JSON 出力で正しく表現されます。適切なエンコードのために一貫して utf8_encode() を使用することを忘れないでください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3