php json_encode 函数在转义含有中文汉字的数据为json格试数据时,会将数据中的中文汉字转换成 unicode 格式的字符,如果我们要保留汉字原有的格式该如何做呢?

json_encode 不转义汉字的方法

1、php版本高于 5.4 的处理方法

在高于5.4版本的php中,可以将 json_encode 函数的第二个参数设置为 JSON_UNESCAPED_UNICODE,则 json_encode 函数处理含有中文汉字的数据时,其中文汉字不会转换成 unicode 格式的字符!

示例代码:<?php

$arr = array('code' => 'success','msg' => '这里是一个提示的内容');

echo json_encode($arr);

//输出的JSON: {"code":"success","msg":"\u8fd9\u91cc\u662f\u4e00\u4e2a\u63d0\u793a\u7684\u5185\u5bb9"}

echo json_encode($arr,JSON_UNESCAPED_UNICODE); // 将第二个参数设置为:JSON_UNESCAPED_UNICODE

//输出的JSON:{"code":"success","msg":"这里是一个提示的内容"}

2、php版本低于 5.4 的处理方法

代于 5.4 版本的php中,json_encode 函数的第二个参数不起作用,则需要自己定义函数来实现不转义汉字的方法。

示例1:

根据网上提供的方法,先将数据中的中文进行urlencode, 在将 json_encode 处理后的字串整体进行 urldecode,就可以啦。可以参考下面的方法!<?php

$arr = array('Name' => '墨初','Host' => 'http://feiniaomy.com');

//需要判断一个php的版本

if(version_compare(PHP_VERSION,'5.4.0','

foreach($arr as $key => $value){

$jsonstr[$key] = urlencode($value);

}

echo urldecode(json_encode($jsonstr));

}else{

echo json_encode($arr);

}

?>

示例2:

对于简单的一组数组可以按照以面的方法来处理,但对于多维数组的转换,可以使用下面定义的函数<?php

$arr = array(

'Name' => '墨初',

'Host' => 'http://feiniaomy.com',

'address' => array(

'Tel' => '1234567890',

'address' => '北京市东城区'

)

);

//自定义函数

function no_json_encode($array){

if(version_compare(PHP_VERSION,'5.4.0','

foreach($array as $key => $value){

if(!is_array($value)){

$jsonstr[$key] = urlencode($value);

}else{

$jsonstr[$key] = urlencode(no_json_encode($value));

}

}

$jsonstr = urldecode(json_encode($jsonstr));

$jsonstr = str_replace(']"', ']', str_replace('"[', '[', $jsonstr));

}else{

$jsonstr = json_encode($array, JSON_UNESCAPED_UNICODE);

}

return $jsonstr;

}

//使用自定义函数 feiniaomy.com

echo no_json_encode($arr);

?>

php json_encode不转义,php json_encode不转义中文汉字的方法相关推荐

  1. PHP JSON_ENCODE 不转义中文汉字的方法

    iOS程序中不识别读取到的JSON数据中 \u开头的数据. PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据. 网上很多,但是其实都是错误的,正确的方法是在json_enc ...

  2. 转载:PHP JSON_ENCODE 不编码中文汉字的方法

    1.PHP版本5.4(包含)+ json_encode($data, JSON_UNESCAPED_UNICODE); //必须PHP5.4+ 2.PHP版本5.4- function encode_ ...

  3. php mysql自动反转义_ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法...

    这篇文章主要介绍了ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法,主要通过针对magic_quotes_gpc开启的情况下进行检查与判断转义来实现,需要的朋友可以参考下 本文实例讲述了 ...

  4. php json_encode 中文乱码解决方法

    php json_encode 中文乱码解决方法 参考文章: (1)php json_encode 中文乱码解决方法 (2)https://www.cnblogs.com/oldphper/p/412 ...

  5. PHP json_encode中文乱码解决方法

    PHP json_encode中文乱码解决方法 参考文章: (1)PHP json_encode中文乱码解决方法 (2)https://www.cnblogs.com/jisheng/archive/ ...

  6. html转义es,Js特殊字符转义之htmlEscape()方法

    为了防止XSS攻击,常常需要将用户输入的特殊字符进行转义,原生js貌似还没有直接对其专业的方法,最近再读Js高级程序设计的时候刚好看到,碰巧项目中也刚好需要使用次方法,于是就之家搬来用了. 网上关于转 ...

  7. php json 不转义,php json_encode中文不转义

    php json_encode函数处理完包含中文的字符串之后,中文会被处理成一串看不懂的字符串,非常不方便,查了一下php文档,发现自php 5.4起,json_encode新增了一个参数 JSON_ ...

  8. java 中文 转义_java html中文汉字 反转义

    Objective-C中小怪兽的逻辑 学习Objective-C的面向对象也有一段时间了,为了犒劳自己的学习成果,写个小怪兽来犒劳一下自己把.在LOL中有怪兽和英雄的角色吧,接下来就先写一个小怪兽的类 ...

  9. php json数据 转义,PHP JSON字符串,转义JS输出的双引号

    我正在从一个 PHP数组创建一个JSON字符串.我已经使用json_encode()编码了它. $json_array = array( 'title' => 'Example string\' ...

最新文章

  1. python基础数据实例_Python基本数据类型及实例详解
  2. 分库分表就能无限扩容吗,解释得太好了!
  3. WebRTC十周年、Space X成功对接国际空间站、TikTok复制品Zynn或有快手支持|Decode the Week...
  4. ceb怎么转换成word_PDF怎么转换成Word?分享免费转换技巧!
  5. r语言 精美rda图_R语言动态图可视化:如何、创建具有精美动画的图
  6. phpstudy_pro MySQL启动失败的原因
  7. wampserver橙色如何变成绿色_PLC视频教程:手机如何控制西门子变频器V20
  8. 机器学习方法(二)——xgboost(原理篇)
  9. Atitit 运营之道 互联网产品运营之道 attilax、著 1. 概念 2 1.1. 核心点 内容 媒体 用户 活动 数据分析 2 2. 第二章内容运营   2 2.1. 2.1 创建用户模
  10. webview android 加载网页,关于webview:如何在android中离线加载网页
  11. DataFormatString格式字符串
  12. 如果说《热带风暴》在你身上刮过,你还剩下什么?
  13. 二叉树期权定价与BSM期权定价
  14. 金蝶新建生产领料单,单据编号不能自动填写
  15. java jnlp 运行_JNLP文件如何能成功安装运行?
  16. 网页 插件 html,HTML 插件
  17. Semantic Mapping in ROS学习及代码运行
  18. 硅谷归来,七大感触——You Only Live Once
  19. 正点原子FPGA开发指南——数码管动态显示
  20. 蓝桥杯寒假作业——python

热门文章

  1. 【报告分享】2021年中国彩妆市场洞察之平价彩妆篇-易观智库(附下载)
  2. mmcv和openCV两个库imcrop()和imresize()方法的对应【基础分析】
  3. 干货分享: 陶瓷3D打印之粘结剂喷射技术的成形材料、优势与挑战
  4. prepareStatement介绍与使用
  5. 功能测试必备:抓包工具的作用及常用抓包工具有哪些?
  6. springboot和springcloud版本对应
  7. unet是残差网络吗_基于深度监督残差网络的肝脏及肝肿瘤分割
  8. sqlserver修改表名、列名
  9. vue项目实战--如何在手机中查看vuecli3/vuecli2项目?
  10. MSE(均方误差)、MAE(平均绝对误差)