php 输出json及显示json中的中文汉字详解及实例


Posted in PHP onNovember 09, 2016

php 输出json及显示json中的中文汉字

在php中,我们经常需要将数组输出json,只需要使用json_encode函数处理一下数组即可,但有的时候数组里面有中文,使用json_encode函数处理后中文字符被编码成了Unicode,如何才能在json中显示中文呢?请看下文。

首先介绍一下php输出json格式:

一种最简单的用法,就是把数组直接输出为json,如下:

<?php
$arr = array('p1'=>'ni"hao','p2'=>2,'ch'=>'码农你好!');
$json = json_encode($arr);
echo $json;
?>

输出的结果为:

{"p1":"ni\"hao","p2":2,"ch":"\u7801\u519c\u4f60\u597d\uff01"}

这里要注意:

双引号在json中会被自动编码为\",这个很好理解,js中字符串中是不允许出来单引号、双引号和反斜杠的。
中文字符被编码成了Unicode

如果是写接口,那直接这样输出就够了,中文无需去做处理。等到了客户端,再去把Unicode的中文转成汉字即可。但如果要在服务器端直接输出汉字出来,那我们可以做如下处理。

<?php
$arr = array('p1'=>'nihao','p2'=>2,'ch'=>'码农你好!');
$json = json_encode($arr);
echo decodeUnicode($json);

function decodeUnicode($str){
  return preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
    create_function(
      '$matches',
      'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'
    ),
    $str);
}
?>

输出:

{"p1":"ni\"hao","p2":2,"ch":"码农你好!"}

这个操作很简单,其实就是把输出结果匹配一下,把Unicode还原成了汉字。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
利用discuz实现PHP大文件上传应用实例代码
Nov 14 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
PHPMailer的主要功能特点和简单使用说明
Feb 17 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
js代码实现微博导航栏
Jul 30 PHP
php实现的Curl封装类Curl.class.php用法实例分析
Sep 25 PHP
PHP实现的浏览器检查类
Apr 11 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
PHP7扩展开发之hello word实现方法详解
Jan 15 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 PHP
Yii2框架制作RESTful风格的API快速入门教程
Nov 08 #PHP
php封装的数据库函数与用法示例【参考thinkPHP】
Nov 08 #PHP
php基于curl重写file_get_contents函数实例
Nov 08 #PHP
php发送http请求的常用方法分析
Nov 08 #PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 #PHP
php执行多个存储过程的方法【基于thinkPHP】
Nov 08 #PHP
php实现的http请求封装示例
Nov 08 #PHP
You might like
PHP实现股票趋势图和柱形图
2015/02/07 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
深入解析JavaScript中的arguments对象
2016/06/12 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
jQuery图片左右滚动代码 有左右按钮实例
2016/06/20 Javascript
vuex实现简易计数器
2016/10/27 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
Python中列表(list)操作方法汇总
2014/08/18 Python
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
python如何使用unittest测试接口
2018/04/04 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
英语教师自荐信
2014/05/26 职场文书
详解Python常用的魔法方法
2021/06/03 Python
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技