PHP 5.4以下版本 json_encode输出中文uft-8问题
最保险的方法,亲测
在PHP开发接口中,我们经常在返回数据中用到了json_encode函数; 默认json_encode 对中文只支持utf-8,不支持GBK; json_encode函数返回的字符串中中文的显示是unicode编码,有些时候项目要求接口返回的数据就是可以看到的中文;
处理方法: i: 先对返回结果中的数据有中文的全部处理成utf-8,如:
s
t
r
=
i
c
o
n
v
(
"
G
B
K
"
,
"
u
t
f
?
8
"
,
str = iconv("GBK","utf-8",
str=iconv("GBK","utf?8",str);默认就是utf-8的不用处理; ii: 再对所有含有中文的数据处理为 $str = urlencode( $str ); iii:正常使用 $returnStr = json_encode( $returnResult ); iv: $returnStr = urldecode ( $returnStr );
就可以得到正确的数据了
对于PHP5.4及以上版本提供了函数直接返回: json_encode($var, JSON_UNESCAPED_UNICODE);
还有亲测网上大部分的函数转化都有问题,尤其是针对多维数组
|