基于php解决json_encode中文UNICODE转码问题


Posted in PHP onNovember 10, 2020

用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似”\u***”的格式,如果想汉字不进行转码,这里提供三种方法

1.升级PHP,在PHP5.4, 这个问题终于得以解决, Json新增了一个选项: JSON_UNESCAPED_UNICODE, 故名思议, 就是说, Json不要编码Unicode.

<?php
echo json_encode("中文", JSON_UNESCAPED_UNICODE);
//"中文"

2.把汉字先urlencode然后再使用json_encode,json_encode之后再次使用urldecode来解码,这样编码出来的json数组中的汉字就不会出现unicode编码了。

$array = array(
'test'=>urlencode("我是测试")
);
$array = json_encode($array);
echo urldecode($array);
//{"test":"我是测试"}

3.对unicode码再进行解码,解码函数如下:

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);
}

4.例子

$arr = array('name1':"中文",'name2':'abc12');
$jsonstr = decodeUnicode(json_encode($arr));

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php5新改动之短标记启用方法
Sep 11 PHP
php输出表格的实现代码(修正版)
Dec 29 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
PHP多文件上传类实例
Mar 07 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
Sep 13 PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 PHP
PHP常用header头定义代码示例汇总
Aug 29 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 #PHP
关于PHP求解三数之和问题详析
Nov 09 #PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 #PHP
PHP后门隐藏的一些技巧总结
Nov 04 #PHP
phpstudy2020搭建站点的实现示例
Oct 30 #PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 #PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
Oct 30 #PHP
You might like
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
PHP实现异步调用方法研究与分享
2011/10/27 PHP
php无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
Ant Design的Table组件去除
2020/10/24 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
安全标准化汇报材料
2014/02/03 职场文书
超市店庆活动方案
2014/08/31 职场文书
公司离职证明标准格式
2014/11/18 职场文书
公司股份合作协议书
2014/12/07 职场文书
博士生专家推荐信
2015/03/25 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android