「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP の json_encode() 関数を使用して JSON 内の特殊文字を正しくエンコードするにはどうすればよいですか?

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

2024 年 11 月 17 日に公開
ブラウズ:667

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

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() を使用することを忘れないでください。

リリースステートメント この記事は次の場所に転載されています: 1729242557 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3