php函数 json_encode注意点

在使用php编程的场景中,总有一些情况下需要将数组转为json字符串,就需要用到php自带的json_encode函数;
但是当数组中含有中文字符串时,转出来的结果却是以下结果(unicode字符串):
<?php $tmpArr = array( 'name' => '长裤', 'color' => 'blue', 'size' => 'XL', 'title' => '中年男装 长裤' ); $tmpJson = json_encode($tmpArr); echo $tmpJson; 输出:{"name":"\u957f\u88e4","color":"blue","size":"XL","title":"\u4e2d\u5e74\u7537\u88c5 \u957f\u88e4"}
要想中文不被转为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":"中年男装 长裤"}
好了,今天的分享就到这里,如果喜欢我的内容,欢迎转发~~
下期见!
相关推荐
-
第18问:MySQL CPU 高了,怎么办?2025-02-24 10:27:18
-
mysql索引类型 normal, unique, full text
mysql索引类型 normal, unique, full text2025-02-24 10:05:05 -
uwsgi+django+nginx 搭建部分总结2025-02-24 10:03:33
-
使用Docker配置Nginx环境部署Nextcloud2025-02-24 10:02:03
-
Nginx安装和怎么使用2025-02-24 10:00:45