网站首页 > 技术文章 正文
在使用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":"中年男装 长裤"}
好了,今天的分享就到这里,如果喜欢我的内容,欢迎转发~~
下期见!
猜你喜欢
- 2024-11-11 php+json+mysql实现前后端分离(php vue前后端分离)
- 2024-11-11 PHP中json解析失败原因, json_decode返回null解析失败原因
- 2024-11-11 如何使php的数组传递到js中(如何使php的数组传递到js中)
- 2024-11-11 Python操作JSON格式数据的技巧(python解析json数据)
- 2024-11-11 Linux(centos)用yum方式安装php最新版
- 2024-11-11 PHP 8.3 正式发布!(php8.0新功能)
- 2024-11-11 使用json_encode打印中文字符并且格式化(php代码)
- 2024-11-11 PhpStorm 2022.2 已发布(phpstorm2018)
- 2024-11-11 你不知道的PHP 8.3版本和它的一些有趣的变化
- 2024-11-11 通过WordPress HTTP API 获取json内容并解析
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)