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

使用 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,学到了新知识,很开心 ~~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Colt666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值