文档章节

PHP json_encode 处理汉字为空 服务端JSON汉字编码

李佳顺
 李佳顺
发布于 2014/07/24 12:32
字数 228
阅读 956
收藏 3

PHP   json_encode 处理汉字为空  服务端JSON汉字编码

原因是这个汉字是gbk编码 , json只能处理utf-8的编码 ,所以要先将数据转码

用Extjs接收PHP服务端返回的Json结果时,发现只要是汉字(从SQLServer取得)都是空字符,很是纳闷。后来看 json_encode的文档才知道,它只能编码UTF-8的字符。这个问题就是返回的字符是GB2312,怎么变为UTF-8,并且最好是将整个数组进 行UTF-8的转换。经过搜索有以下代码完成:

//处理数组编码格式

function td_iconv($data, $charset_from, $charset_to) {
    if(strtolower($charset_from) == "gb2312") {
        $charset_from = "gbk";
    }
    if(strtolower($charset_from) == strtolower($charset_to)) {
        return $data;
    }   
    
    if(is_array($data)) {
        foreach($data as $k => $v) {
            if(is_array($v)) {
                $data[$k] = td_iconv($v,$charset_from,$charset_to);
            }else {
                $data[$k] = is_string($v) ? mb_convert_encoding($v, $charset_to, $charset_from) : $v;
            }
        }
    }else {
    if(is_string($data))
          $data = mb_convert_encoding($data, $charset_to, $charset_from);
    }
    return $data;
}



 


© 著作权归作者所有

共有 人打赏支持
李佳顺

李佳顺

粉丝 21
博文 415
码字总数 226963
作品 0
朝阳
程序员
加载中

评论(1)

pauli
pauli
刚好用到
echo json_encode() 输出中文不显示

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

ITCHN
2016/12/19
35
0
解决json_encode中文UNICODE转码问题

用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似”u***”的格式,如果想汉字不进行转码,这里提供三种方法 1.升级PHP,在PHP5.4, 这个问题终于得以解决, Json新增了...

grushy
2014/10/21
0
0
jquery与php的json交互

jsonPHPjQueryMySQLAjax 整理两个现成的函数:jsondecode、jsonencode 说明:其中jsonencode 表示把常用的传统的数据类型如对象、数组、关联数组等转成JSON字符串。其实与JAVA里面的那个工具...

zyt_1978
2016/06/11
34
0
Objective-C和PHP进行json交互

由于ASIHttpRequest的作者已经明确不再维护这个库了,所以我使用了较为轻量的MKNetworkKit库。 服务端,PHP自带了json的序列化和反序列化函数:jsonencode和jsondecode。而对于客户端,我采用...

迷途d书童
2012/03/05
1K
0
KindEditor 3.4.1 发布

这次版本主要修复了一些3.4版本的小BUG,默认参数有一些变化,替换了部分默认图标。还有,3.4.1版本开始图片上传程序(upload_json.php)返回JSON数据,所以原来的upload.php不能直接使用,需...

小编辑
2010/02/26
885
0

没有更多内容

加载失败,请刷新页面

加载更多

线性一致性和 Raft

作者:沈泰宁 在讨论分布式系统时,共识算法(Consensus algorithm)和一致性(Consistency)通常是讨论热点,两者的联系很微妙,很容易搞混。一些常见的误解:使用了 Raft [0] 或者 paxos ...

TiDB
32分钟前
0
0
兄弟连区块链教程以太坊源码分析core-state-process源码分析

## StateTransition状态转换模型 /* The State Transitioning Model 状态转换模型 A state transition is a change made when a transaction is applied to the cu......

兄弟连区块链入门教程
33分钟前
0
0
linear-gradient渐变中的参数

在看张鑫旭的博客 遇到渐变数值后面带参数不太理解 @supports (-webkit-mask: none) or (mask: none) { .box { border: none; background: linear-gradient(to bottom, #34538...

红羊在厦门
35分钟前
2
0
Python yagmail模块自动发邮件

Python发邮件yagmail模块 import yagmail#连接服务器yag=yagmail.SMTP('xx@163.com','yy','smtp.163.com')#邮箱正文contents=["test","email send"]#发送邮件#yag.send('...

小白兔_球球
36分钟前
1
0
pada mysql

CREATE SCHEMA `exchange` DEFAULT CHARACTER SET utf8mb4 ;

qwfys
44分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部