tp数组转为json_php函数 json_encode注意点

11f860636510daa50c4844fb0af7860e.png

在使用php编程的场景中,总有一些情况下需要将数组转为json字符串,就需要用到php自带的json_encode函数;

但是当数组中含有中文字符串时,转出来的结果却是以下结果(unicode字符串):

<?php $tmpArr = array( 'name' => '长裤', 'color' => 'blue', 'size' => 'XL', 'title' => '中年男装 长裤' ); $tmpJson = json_encode($tmpArr); echo $tmpJson;输出:{"name":"长裤","color":"blue","size":"XL","title":"中年男装 长裤"}

要想中文不被转为unicode字符串,只需要给json_encode函数中传入一个参数JSON_UNESCAPED_UNICODE即可,如下:

<?php $tmpArr = array( 'name' => '长裤', 'color' => 'blue', 'size' => 'XL', 'title' => '中年男装 长裤' ); $tmpJson = json_encode($tmpArr,JSON_UNESCAPED_UNICODE); echo $tmpJson;输出:{"name":"长裤","color":"blue","size":"XL","title":"中年男装 长裤"}

但是PHP版本<5.4.0中并不支持以上参数JSON_UNESCAPED_UNICODE,这个时候我们可以通过以下方式解决:

$tmpArr = array( 'name' => '长裤', 'color' => 'blue', 'size' => 'XL', 'title' => '中年男装 长裤' ); $tmpJson = json_encode($tmpArr); $tmpJson = preg_replace_callback("#u([0-9a-f]{4})#i",function($matchs){ return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1])); },$tmpJson); echo $tmpJson;输出:{"name":"长裤","color":"blue","size":"XL","title":"中年男装 长裤"}

好了,今天的分享就到这里,如果喜欢我的内容,欢迎转发~~

下期见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值