文档章节

使用json_encode参数为GBK类型的中文

 蜗牛奔跑
发布于 2017/08/22 17:43
字数 337
阅读 28
收藏 0

使用json_encode参数为GBK类型的中文

 

json_encode参数为GBK类型的中文

由于json_encode函数自身的限制,无法支持GBK类型的中文,所有在编码含有GBK编码类型的中文结果会是null

最初碰到了这个问题,磕磕绊绊了很久找到了解决的方案

 

方案一、将数组中所有的中文部分进行转码

方案原理:当你想对一个含有GBK编码的中文数组进行json_encode时,循环进行对数组进行转码,代码原理:

foreach($arr as $k=>$v)
{
    $arr[$k] = mb_convert_encoding($v, "UTF-8", "GBK");
}
  •  

当然具体情况需要视具体情况进行修改

方案二、将数组先进行urlencode再进行json_encode、urldecode返回

方案原理:利用递归的思想将数组进行urlencode,然后再进行json_encode,之后再urldecode返回,代码原理:

$res	= changeArr($arr);
function changeArr($arr)
{
    foreach($arr as $k=>$v)
    {
        if (is_arrary($v))
        {
            $arr[$k] = changeArr($v);
        } else {
            $arr[$k] = urlencode($v);
        }
    }
    return $arr;
}
  •  

以上的两种形式都可以解决大部分的json_encode无法编码GBK类型的中文,个人经验有限,不敢说碰到了所有的这方面的问题,但所碰到的都可以用以上的两种形式解决

© 著作权归作者所有

粉丝 38
博文 615
码字总数 118352
作品 0
海淀
私信 提问
echo json_encode() 输出中文不显示

PHP默认的jsonencode编码出来的是unicode编码的,也就是u的编码,用PHP的jsonencode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似”u***”的格式。 虽然unicode编码可以在不同的页面...

ITCHN
2016/12/19
1K
0
python 的 string 和 PyQt 的 QString 的区别

以下在 Python2.6和PyQt4.4.4 for Python2,6环境下讨论: Python中有两种有关字符的类型:Python string object和Python Unicode object。主要使用Python string object进行数据输入输出。 ...

不必在乎朕是谁
2013/08/26
633
0
关于java发送http请求时中文乱码的一种解决办法

在jsp中常见的乱码解决办法无外乎是关于get和post两种方式的,但只有切实地在实践中使用时才会注意或者说注重到其他方式。例如,在http请求头中传送中文参数,出现乱码,如何解决? 实际场景...

chace0120
2014/03/13
26.7K
0
PHP json_encode() 函数详解及中文乱码问题

在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。 这个函数的功能是将数值转换成json数据存储格式。 ? 1 2 3 4 5 6 7 8 9 程序运...

zyt_1978
2016/06/19
85
0
Python Unicode与中文处理(转)

Python Unicode与中文处理 python中的unicode是让人很困惑、比较难以理解的问题,本文力求彻底解决这些问题; 1.unicode、gbk、gb2312、utf-8的关系; http://www.pythonclub.org/python-bas...

coldlemon
2014/01/04
298
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部