ホームページ >バックエンド開発 >PHPチュートリアル >json_decode 中国語に関する問題

json_decode 中国語に関する問題

WBOY
WBOYオリジナル
2016-06-13 11:58:08931ブラウズ

json_decode 中国語の問題!
には次の文字列があります:
[{"category_name":"category 1","parent_cid":0,"lev":1,"cid":1,"display_order":1},{" category_name ":"Category 2","parent_cid":0,"lev":1,"cid":2,"display_order":2}]

json_decodeで配列に変換するとnullが返されます。 json_decode が中国語に対応していないので確認してみました。
配列に変換するにはどうすればよいですか?
オンラインで多くの方法を検索しましたが、どれもうまくいきませんでした。
効果的な解決策を提供できる人はいますか? (ファイルのエンコードは変更できません)
ありがとうございます
-----解決策---------
あなたの文字列はどこから来たのですか?それはエディターから入力されたものですか、それとも他の場所から取得されたものですか?
------解決策------
PHP の json は utf-8 のみをサポートしているようです。 iconv で最初に他のエンコーディングを変換します
-----解決策---------

<br />$str = '[{"category_name":"类别1","parent_cid":0,"lev":1,"cid":1,"display_order":1},{"category_name":"类别2","parent_cid":0,"lev":1,"cid":2,"display_order":2}]';<br />$r = json_decode($str);<br />echo '<pre class="brush:php;toolbar:false">';print_r($r);<br />


配列
(
[0] => stdClass オブジェクト
(
[category_name] => カテゴリ 1
[parent_cid] => ; 0
[1] => 🎜> (
[category_name] => カテゴリ 2
[parent_cid] => 0
[lev] => 1
[cid] => 2
[display_order ] => 2
)

)

-----解決策---------- --------------------

すべてのエンコードが UTF-8 に設定されている場合は問題ありません。json は UTF-8 でエンコードされた中国語のみをサポートします。

------解決策-------- ------------
JSON 文字列に中国語が含まれているのはなぜですか?自分で組み立てたんですか? 通常の状況では、中国語はエンコードされる必要があります。
ファイル保存のエンコードを変更できない場合は、中国語をトランスコードしてください。
------解決策----------------------
json_encode によって生成されたものを使用する代わりに、自分で json を記述します。
json_encode で生成されたものは中国語を utf8 に変換します。

[{"category_name":"u7c7bu522b1","parent_cid":0,"lev":1,"cid":1,"display_order":1},{"category_name":" u7c7bu522b2","parent_cid":0,"lev":1,"cid":2,"display_order":2}]配列
(
[0] => 配列
(
<br /><?php<br />$arr = array (<br />  array (<br />    'category_name' => '类别1',<br />    'parent_cid' => 0,<br />    'lev' => 1,<br />    'cid' => 1,<br />    'display_order' => 1,<br />  ),<br />  array (<br />    'category_name' => '类别2',<br />    'parent_cid' => 0,<br />    'lev' => 1,<br />    'cid' => 2,<br />    'display_order' => 2,<br />  )<br />);<br /><br />echo json_encode($arr).'<br>';<br /><br />echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';<br />echo '<pre class="brush:php;toolbar:false">';<br />print_r(json_decode(json_encode($arr),true));<br />echo '
'
?>
[category_name] => カテゴリ 1
[parent_cid] => 1
[cid] => 1
)

[1] => 配列
(
[category_name] => カテゴリ 2
[parent_cid] => ; 0
[lev] = > 1
[cid] => 2
[display_order] => 2
)

)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。