json_encode、漢字に関する問題

WBOY
リリース: 2016-06-13 12:21:39
オリジナル
1003 人が閲覧しました

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

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