PHP转含有中文的数组,解决乱码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Colt666/article/details/85259431

使用 PHP的 json_encode () 函数

今天需要将含有中文的数组转为json格式,第一尝试,将中文也转义了

第二次成功解决,故做此记录

 

尝试1:

将返回的数组直接 json_encode,发现中文也被转码了

不是我要的效果

$arr=array('key'=>'中文');
$rel=$json=json_encode($arr);
print_r($rel);

效果:{"key":"\u4e2d\u6587"}

 

复习小知识:

PHP5.4 以后的版本 多了一个参数,

json_encode($arr,option)

 

其中有2个比较常用到的参数:

参数1:中文不转为unicode ,对应的数字 256

JSON_UNESCAPED_UNICODE

json_encode($arr,JSON_UNESCAPED_UNICODE/256); //JSON_UNESCAPED_UNICODE或者数字都行


 

参数2:不转义反斜杠,对应的数字 64

JSON_UNESCAPED_SLASHES

json_encode($arr,JSON_UNESCAPED_SLASHES/64); //JSON_UNESCAPED_SLASHES或者数字都行

 

通常json_encode只能传入一个常量,如果同时使用2个常量怎么办?

JSON_UNESCAPED_UNICODE + JSON_UNESCAPED_SLASHES = 320

使用方法:json_encode($arr,320);即可完成同时使用2个常量。

$arr = array('key'=>'中文/前面的斜杠不会被转义');

json_encode($arr,320);

效果:

{"key":"中文/前面的斜杠不会被转义"}

 

尝试2:

$arr=array('key'=>'中文');
$rel=$json=json_encode($arr,256);//最关键的一句

print_r($rel);

效果:

{"key":"中文"}

 

 

OK,学到了新知识,很开心 ~~

 

展开阅读全文

没有更多推荐了,返回首页