PHP实现json_decode不转义中文的方法


Posted in PHP onMay 20, 2017

本文实例讲述了PHP实现json_decode不转义中文的方法。分享给大家供大家参考,具体如下:

默认情况下PHP的 json_decode 方法会把特殊字符进行转义,还会把中文转为Unicode编码形式。

这使得数据库查看文本变得很麻烦。所以我们需要限制对于中文的转义。

对于PHP5.4+版本,json_decode函数第二个参数,可以用来限制转义范围。

要限制中文,使用JSON_UNESCAPED_UNICODE参数。

json_encode($a, JSON_UNESCAPED_UNICODE);

对于PHP5.3版本,可以先把ASCII 127以上的字符转换为HTML数值,这样避免被json_decode函数转码:

function my_json_encode($arr)
{
    //convmap since 0x80 char codes so it takes all multibyte codes (above ASCII 127). So such characters are being "hidden" from normal json_encoding
    array_walk_recursive($arr, function (&$item, $key) { if (is_string($item)) $item = mb_encode_numericentity($item, array (0x80, 0xffff, 0, 0xffff), 'UTF-8'); });
    return mb_decode_numericentity(json_encode($arr), array (0x80, 0xffff, 0, 0xffff), 'UTF-8');
}
PHP 相关文章推荐
php-accelerator网站加速PHP缓冲的方法
Jul 30 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
May 07 PHP
PHP常用工具类大全附全部代码下载
Dec 07 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
Zend Framework动作控制器用法示例
Dec 09 PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
Apr 10 PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 #PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 #PHP
Yii框架实现的验证码、登录及退出功能示例
May 20 #PHP
利用Laravel事件系统如何实现登录日志的记录详解
May 20 #PHP
Yii框架实现图片上传的方法详解
May 20 #PHP
Yii框架分页实现方法详解
May 20 #PHP
thinkPHP显示不出验证码的原因与解决方法分析
May 20 #PHP
You might like
PHP 上传文件大小限制
2009/07/05 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
JObj预览一个JS的框架
2008/03/13 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
javascript将list转换成树状结构的实例
2017/09/08 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
施工安全协议书
2013/12/11 职场文书
办理暂住证介绍信
2014/01/11 职场文书
三年级数学教学反思
2014/01/31 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
经费申请报告范文
2015/05/18 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang