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 />
<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 ''