-
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码,浏览器会主动转换成文字。