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 相关文章推荐
木翼下载系统中说明的PHP安全配置方法
Jun 16 PHP
实用函数5
Nov 08 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 PHP
PHP下escape解码函数的实现方法
Aug 08 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
PHP 登录记住密码实现思路
May 07 PHP
php全局变量和类配合使用深刻理解
Jun 05 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
PHP实现的DES加密解密实例代码
Apr 06 PHP
[原创]php使用curl判断网页404(不存在)的方法
Jun 23 PHP
yii2 上传图片的示例代码
Nov 02 PHP
PHP获取真实IP及IP模拟方法解析
Nov 24 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
关于session在PHP5的配置文件中的详细设置参数说明
2011/04/20 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
js读取本地文件的实例
2017/12/22 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
用Python编程实现语音控制电脑
2014/04/01 Python
linux下python抓屏实现方法
2015/05/22 Python
Python脚本实现自动发带图的微博
2016/04/27 Python
Python中模块string.py详解
2017/03/12 Python
python五子棋游戏的设计与实现
2019/06/18 Python
如何验证python安装成功
2020/07/06 Python
医药营销个人求职信范文
2014/02/07 职场文书
给校长的建议书100字
2014/05/16 职场文书
跳槽求职信范文
2014/05/26 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
工作经历证明书范文
2014/11/02 职场文书
“5.12”护士节主持词
2015/07/04 职场文书
七一慰问简报
2015/07/20 职场文书
体育委员竞选稿
2015/11/21 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
详解Python中的for循环
2022/04/30 Python