码迷,mamicode.com
首页 > Web开发 > 详细

解决php函数json_encode转换后中文被编码为unicode

时间:2014-06-13 19:49:45      阅读:510      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   java   http   

大家都知道使用函数json_encode()可以方便快捷地将数组进行json编码转换,但是如果数组值存在着中文,json_encode会将中文转换为unicode编码,例如:

bubuko.com,布布扣
<?PHP
$array = array(‘中国‘,‘美国‘,‘高富帅‘,‘白富美‘,‘屌丝‘);
echo json_encode($array);
bubuko.com,布布扣

 

打印出的结果为:

bubuko.com,布布扣
["\u4e2d\u56fd","\u7f8e\u56fd","\u9ad8\u5bcc\u5e05","\u767d\u5bcc\u7f8e","\u5c4c\u4e1d"]
bubuko.com,布布扣

 

这种格式也是我们最常见的,在javascript中也是可以被解析的。但有些情况下我不需要将中文转换为unicode编码,该如果处理呢。解决办法是先将中文进行 urlencode()转码。然后转为json.再通过urldecode() 将json转换就可以解决:

bubuko.com,布布扣
$data = array();
foreach($array as $key=>$value)
{
    $data[] = urlencode($value);
}
echo urldecode(json_encode($data));
bubuko.com,布布扣

 

打印结果为:

["中国","美国","高富帅","白富美","屌丝"]

这样,我们的问题也就解决了,常见的有天气预报的接口返回值就是这样的。需要我们注意的是 json_encode()只支持UTF-8编码。所以如果是其它编码的时候还需要转换一下。如:iconv(),当然方法也很多了,在PHP5.4的版本中 json_encode()已经支持不转换编码,例:json_encode($str, JSON_UNESCAPED_UNICODE)

解决php函数json_encode转换后中文被编码为unicode,布布扣,bubuko.com

解决php函数json_encode转换后中文被编码为unicode

标签:style   class   blog   code   java   http   

原文地址:http://www.cnblogs.com/zrp2013/p/3784332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!