json_encode转码中文会生成\uxxx的编码
php5.4+解决方法:
josn_encode('我是中文',JSON_UNESCAPED_UNICODE);
php5.4以下的版本需要自行处理了:我这里做了一个处理供大家参考(如有不当敬请指点):
解决思路先将数据url编码,json_encode之后再通过urldecode解码。
可能出现的问题如下:
- 不识别bool类型。推荐bool类型改为1,0;
//中文处理5.4以下
public function encode_json($str)
{
return urldecode(json_encode(self::url_encode($str) ) );
}
function url_encode($str)
{
if (is_array($str)) {
foreach ($str as $key => &$value) {
if(is_array($value)){
$value=self::url_encode($value);
}else{
(!is_numeric($value))&&($value=urlencode($value));
}
}
}
else {
$str = urlencode($str);
}
return $str;
}