首页 > 后端开发 > php教程 > json_encode()函数为什么不能解析带中文的JSON字符串呢?

json_encode()函数为什么不能解析带中文的JSON字符串呢?

WBOY
发布: 2016-06-23 14:11:50
原创
1222 人浏览过

这样就有值:

$a = '{ "a":"www", "b":2}';$arr = json_decode($a, true);
登录后复制


这样就返回NULL:
$a = '{ "a":"你好", "b":2}';$arr = json_decode($a, true);
登录后复制


为什么出现这种情况呢?该怎么解析带中文的JSON字符串呢?


回复讨论(解决方案)

json中的中文都被转码了:

$p = array("name"=>"成龙",array("age"=>55,"cur"=>"电影"));$p_json = json_encode($p);echo $p_json."<br>";#{"name":"\u6210\u9f99","0":{"age":55,"cur":"\u7535\u5f71"}}#\u6210\u9f99 => 成龙,#\u7535\u5f71 => 电影print_r(json_decode($p_json));#stdClass Object ( [name] => 成龙 [0] => stdClass Object ( [age] => 55 [cur] => 电影 ) )
登录后复制

json中的中文都被转码了:
PHP code

$p = array("name"=>"成龙",array("age"=>55,"cur"=>"电影"));
$p_json = json_encode($p);
echo $p_json."
";
#{"name":"\u6210\u9f99","0":{"age":55,"cur":"\u7535\u5f71"}}
#\u6210\……

那它也应该能出来东西啊,不能是NULL吧

在你的编辑器中把字符集改为utf-8

文件编码 utf-8 或者 iconv 自己再转

在你的编辑器中把字符集改为utf-8

嗯好了,谢谢啊!

不能解析中文,我设置了utf-8

header("Content-Type: text/html; charset=utf-8");$p = array("name"=>"成龙",array("age"=>55,"cur"=>"电影"));$p_json = json_encode($p);
登录后复制

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板