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

作者:小猿笔记 时间:2023-07-02 20:51:22 

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

来源:https://www.cnblogs.com/KillBugMe/p/12407939.html

标签:php,json,encode,中文,UNICODE,转码
0
投稿

猜你喜欢

  • 详解Python中for循环是如何工作的

    2021-07-04 17:41:40
  • 用js更好地截取定长字符串

    2008-01-16 12:48:00
  • JS CSS制作饱含热情的镶边文字闪烁特效

    2024-04-16 09:04:51
  • 详解Python传入参数的几种方法

    2023-02-05 15:37:28
  • js生成随机数(指定范围)的实例代码

    2024-04-17 10:29:42
  • Python中的线程操作模块(oncurrent)

    2021-08-15 14:08:15
  • Python线程之定位与销毁的实现

    2023-09-25 11:47:19
  • asp如何实现页面执行时间及搜索时间

    2007-11-12 22:48:00
  • 如何将Python编译成C语言

    2022-01-02 10:49:31
  • 如何用Python进行时间序列分解和预测

    2022-06-20 14:39:42
  • Python NumPy实现数组排序与过滤示例分析讲解

    2021-07-20 08:33:20
  • Python for循环搭配else常见问题解决

    2021-04-23 06:08:56
  • Python如何利用Har文件进行遍历指定字典替换提交的数据详解

    2022-04-22 22:35:17
  • 在Oracle PL/SQL中游标声明中表名动态变化的方法

    2009-02-28 10:39:00
  • Oracle捕获问题SQL解决CPU过渡消耗

    2010-07-21 13:14:00
  • 如何利用python给图片添加半透明水印

    2022-08-16 09:34:28
  • Mysql InnoDB引擎的索引与存储结构详解

    2024-01-12 15:22:52
  • 微信小程序wx.request拦截 器使用详解

    2023-07-22 09:11:55
  • MySQL数据库表空间回收的解决

    2024-01-26 00:00:41
  • 对django 2.x版本中models.ForeignKey()外键说明介绍

    2022-10-07 18:18:24
  • asp之家 网络编程 m.aspxhome.com