json_decode中文的有关问题

php中文网
发布: 2016-06-13 11:58:08
原创
1043人浏览过

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
        )

)

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号