json_encode 中文变成null
添加时间:2013-8-5 点击量:
今天在应用php时掉进了一个坑里,折腾了好久。
在应用json_encode时,若是数组中存在中文,该中文输出为null。
示例代码:
<?php
¥brand = array(id=>123456,name=>联想);
var_dump(json_encode(¥brand));
?>
输出成果:
string(27) {id:123456,name:null}
“联想”变成null了。
应用下面这个函数解决了此题目。
<?php
function gbk2utf8(¥data){
if(is_array(¥data)){
return array_map(gbk2utf8, ¥data);
}
return iconv(gbk,utf-8,¥data);
}
?>
<?php
¥brand = array(id=>123456,name=>联想);
var_dump(json_encode(gbk2utf8(¥brand)));
?>
在json_encode之前做一下gbk2utf8转码,此时输出正确成果。
string(37) {id:123456,name:\u8054\u60f3}
\u8054\u60f3 为“联想”的unicode码,浏览器会主动转换成文字。
容易发怒的意思就是: 别人做了蠢事, 然后我们代替他们, 表现出笨蛋的样子。—— 蔡康永
今天在应用php时掉进了一个坑里,折腾了好久。
在应用json_encode时,若是数组中存在中文,该中文输出为null。
示例代码:
<?php
¥brand = array(id=>123456,name=>联想);
var_dump(json_encode(¥brand));
?>
输出成果:
string(27) {id:123456,name:null}
“联想”变成null了。
应用下面这个函数解决了此题目。
<?php
function gbk2utf8(¥data){
if(is_array(¥data)){
return array_map(gbk2utf8, ¥data);
}
return iconv(gbk,utf-8,¥data);
}
?>
<?php
¥brand = array(id=>123456,name=>联想);
var_dump(json_encode(gbk2utf8(¥brand)));
?>
在json_encode之前做一下gbk2utf8转码,此时输出正确成果。
string(37) {id:123456,name:\u8054\u60f3}
\u8054\u60f3 为“联想”的unicode码,浏览器会主动转换成文字。