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

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

缘由是这个汉字是gbk编码 , json只能处理utf-8的编码 ,因此要先将数据转码数组

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

//处理数组编码格式
code

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; }
相关文章
相关标签/搜索