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代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
PHP 年龄计算函数(精确到天)
Jun 07 PHP
php ci框架中加载css和js文件失败的原因及解决方法
Jul 29 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 PHP
Web程序工作原理详解
Dec 25 PHP
php获取网页上所有链接的方法
Apr 03 PHP
ThinkPHP项目分组配置方法分析
Mar 23 PHP
深入理解PHP中的empty和isset函数
May 26 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
php使用ftp实现文件上传与下载功能
Jul 21 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里的中文变量说明
2011/07/23 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
python实现FTP服务器服务的方法
2017/04/11 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Python远程linux执行命令实现
2020/11/11 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
CSS3基础(RGBa、text-shadow、box-shadow、border-radius)
2012/11/13 HTML / CSS
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
求职简历中个人的自我评价
2013/12/01 职场文书
门卫岗位安全职责
2013/12/13 职场文书
经济贸易系求职信
2014/08/04 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
Python正则表达式中flags参数的实例详解
2022/04/01 Python