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

PHP json_encode 处理汉字为空 服务端JSON汉字编码

时间:2014-07-25 00:11:04      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:数据   io   for   re   c   问题   cti   代码   

PHP   json_encode 处理汉字为空  服务端JSON汉字编码

原因是这个汉字是gbk编码 , json只能处理utf-8的编码 ,所以要先将数据转码

用Extjs接收PHP服务端返回的Json结果时,发现只要是汉字(从SQLServer取得)都是空字符,很是纳闷。后来看 json_encode的文档才知道,它只能编码UTF-8的字符。这个问题就是返回的字符是GB2312,怎么变为UTF-8,并且最好是将整个数组进 行UTF-8的转换。经过搜索有以下代码完成:

//处理数组编码格式

function td_iconv($data, $charset_from, $charset_to) {
    if(strtolower($charset_from) == "gb2312") {
        $charset_from = "gbk";
    }
    if(strtolower($charset_from) == strtolower($charset_to)) {
        return $data;
    }   
    
    if(is_array($data)) {
        foreach($data as $k => $v) {
            if(is_array($v)) {
                $data[$k] = td_iconv($v,$charset_from,$charset_to);
            }else {
                $data[$k] = is_string($v) ? mb_convert_encoding($v, $charset_to, $charset_from) : $v;
            }
        }
    }else {
    if(is_string($data))
          $data = mb_convert_encoding($data, $charset_to, $charset_from);
    }
    return $data;
}



 


PHP json_encode 处理汉字为空 服务端JSON汉字编码,布布扣,bubuko.com

PHP json_encode 处理汉字为空 服务端JSON汉字编码

标签:数据   io   for   re   c   问题   cti   代码   

原文地址:http://my.oschina.net/shunshun/blog/294445

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