json_encode、漢字の問題
この投稿は、2015-04-09 21:50:26 に xtjsxtj によって最終的に編集されました インターネット上のほとんどの意見によると、中国語の文字は最初に URL エンコードされ、次に json_encode されます。 urldecode
このようにすると、次のことが判明した場合に 1 つの問題が発生します。
$arr = array ('a'=>urlencode('script, home')); //簡体字中国語 BGK エンコーディング
echo urldecode(json_encode( $arr));
結果は {"a": "Script, Home"} です
これは不正な JSON 文字列です。json_decode をデコードできません
皆さん この問題を次のように解決するにはどうすればよいですか
それらはすべて utf8 エンコードに変換されましたか?
この json 文字列も URL リクエストと urlencode のパラメータである必要がある場合、どのようにすればよいですか?これに対処するには?
utf8 によると、まず json_encode してから、json 文字列全体を urlencode しますか?
------解決策のアイデア----------------------まず、gbk の {"a" : "Script, Home"} は不正な JSON 文字列ではありません
JSON は値フィールドの文字セットを要求したことはありません
json_decode でデコードできないのは、関数が開発者は、php が受信した json 文字列が XMLHttpRequest によって送信され、XMLHttpRequest は常に utf-8 エンコーディングでデータを送信すると信じています。したがって、関数
で文字セットを識別する必要はなく、その結果、php の json 関数は utf-8
のみをサポートするという状況になります。この場合、次のように適応する必要があります。この環境