首页 > 代码库 > PHP json_encode 处理汉字为空 服务端JSON汉字编码
PHP json_encode 处理汉字为空 服务端JSON汉字编码
PHP json_encode 处理汉字为空 服务端JSON汉字编码
原因是这个汉字是gbk编码 , json只能处理utf-8的编码 ,所以要先将数据转码
用Extjs接收PHP服务端返回的Json结果时,发现只要是汉字(从SQLServer取得)都是空字符,很是纳闷。后来看 json_encode的文档才知道,它只能编码UTF-8的字符。这个问题就是返回的字符是GB2312,怎么变为UTF-8,并且最好是将整个数组进 行UTF-8的转换。经过搜索有以下代码完成:
//处理数组编码格式
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 = http://www.mamicode.com/mb_convert_encoding($data, $charset_to, $charset_from); > }
return $data;
}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。