json_decode中文的有关问题

WBOY
풀어 주다: 2016-06-13 11:58:08
원래의
886명이 탐색했습니다.

json_decode中文的问题!
有如下的字符串:
[{"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}]

用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 />
로그인 후 복사


Array
(
[0] => stdClass Object
(
[category_name] => 类别1
[parent_cid] => 0
[lev] => 1
[cid] => 1
[display_order] => 1
)

[1] => stdClass Object
(
[category_name] => 类别2
[parent_cid] => 0
[lev] => 1
[cid] => 2
[display_order] => 2
)

)
------解决方案--------------------
所有編碼都設置為UTF-8就沒啥問題 json只支持UTF-8編碼的中文.
------解决方案--------------------
为什么你的JSON字符串里会有中文?自己拼装的吗?
正常情况下中文应该是编码过的。
如果不能改变文件保存的编码,把中文转码处理下就可以了。
------解决方案--------------------
你的json是自己写的而不是用json_encode生成的吧。
用json_encode生成的会将中文转utf8。
<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":"\u7c7b\u522b1","parent_cid":0,"lev":1,"cid":1,"display_order":1},{"category_name":"\u7c7b\u522b2","parent_cid":0,"lev":1,"cid":2,"display_order":2}]
Array
(
    [0] => Array
        (
            [category_name] => 类别1
            [parent_cid] => 0
            [lev] => 1
            [cid] => 1
            [display_order] => 1
        )

    [1] => Array
        (
            [category_name] => 类别2
            [parent_cid] => 0
            [lev] => 1
            [cid] => 2
            [display_order] => 2
        )

)

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!