千家信息网

如何解决php5.2 Json不能正确处理中文、GB编码的问题

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇内容主要讲解"如何解决php5.2 Json不能正确处理中文、GB编码的问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何解决php5.2 Jso
千家信息网最后更新 2025年01月18日如何解决php5.2 Json不能正确处理中文、GB编码的问题

本篇内容主要讲解"如何解决php5.2 Json不能正确处理中文、GB编码的问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何解决php5.2 Json不能正确处理中文、GB编码的问题"吧!

php5.2新增的json功能是非常受欢迎的,但是经过测试发现,
json_encode对中文的处理是有问题的,
1.不能处理GB编码,所有的GB编码都会替换成空字符.
2.utf8编码的中文被编码成unicode编码,相当于javascript的escape函数处理的结果.

复制代码 代码如下:

/*

为了能正确使用json,首先我们就应该在编码上采用utf8编码,然后再对json_encode的返回结果稍加处理就可以得到正确的结果了。
我写了一个简单的类,将这两个函数包装了一下,
**/
class Json{
public static function encode($str){
$code = json_encode($str);
return preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $code);
}

public static function decode($str){
return json_decode($str);
}
}
//使用的时候

Json::encode($code);
Json::decode($code);
/**这样可以正确处理utf8编码的中文了。

PS:对于GB编码的中文,我们可以在编码时先转成UTF8编码,再进行编码,解码的时候再进行一个utf8 -> gb的转换就可以了。
另外一般json_encode的结果我们是返回到客户端来使用,我们其实还可以用javascript的unescape函数来对unicode编码的中文进行解码,从而还原成正确的中文。

或者用:$title = mb_convert_encoding($title, 'HTML-ENTITIES', $this->_outCharset);//任意编码下都正常显示
********/

到此,相信大家对"如何解决php5.2 Json不能正确处理中文、GB编码的问题"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

编码 中文 处理 问题 结果 函数 代码 内容 时候 学习 实用 更深 两个 兴趣 功能 实用性 实际 客户 客户端 操作简单 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 无限级分销数据库设计 数据库导入文字是问号 铜川展厅多媒体软件开发公司 山东个性化软件开发价格走势 江西参考软件开发优势 软件开发与定制衢州 上海极速互联网科技有限公司 数据库中procedure用法 手机版好玩的服务器大全 国家电网1901网络安全 数据库技术的奠基人之一E 获取服务器文件大小 实验二成绩统计数据库设计 计算机网络技术crc题 数据库的一致性 dnf什么软件开发的 专业销售服务器和存储的 腾讯云服务器可以建网站吗 哪个直播软件开发 金华软件开发需要学什么 安徽云都智慧网络技术有限公司 河南自动化项目管控软件开发平台 河北发展网络技术咨询口碑推荐 spoon数据库连接错误 网络技术给数字图书馆带来的挑战 卫星遥感地震应用数据库结构 中国疾病数据库 卖车数据库一般有什么意思 该不该用数据库枚举类型 网络安全法各级政府网络宣传
0