探讨PHP JSON中文乱码的解决方法详解


Posted in PHP onJune 06, 2013

我们知道在使用Ajax技术与PHP后台交互时,中文乱码是常有的事,JSON作为与XML类似的数据交换格式,在PHP用来进行交互时也会出现中 文乱码的情况,解决PHP JSON中文乱码的方法思路其实与PHP Ajax传值中文字符乱码的解决方法类似,下面我以教程形式详细介绍下解决PHP JSON中文乱码的方法。

为什么PHP与JSON交互时会出现中文乱码?

由于JSON与JS一样,对于客户端的字符是以UTF8的形式处理,即JSON提交或接受返回的字符是以UTF8形式处理,当与PHP交互时,如果数据库编码、PHP页面编码不采用UTF8格式时,PHP与JSON交互时中文就会产生乱码。

解决PHP JSON中文乱码的方法

在知道了PHP与JSON交互产生中文乱码的原因后解决的方法其实就简单很多。

解决PHP JSON中文乱码方法一:保证数据库、前后台PHP页面编码一致

最简答的解决PHP JSON中文乱码的方法就是保证数据库编码、PHP页面编码统一采用UTF8格式,对于PHP入门学习者来说建站时数据库最好使用UTF8格式,可减少不少麻烦。

解决PHP JSON中文乱码方法二:配置使用PHP函数urlencode与JS函数decodeURI()

当PHP使用JSON与前台JS交互时,在使用json_encode函数之前需要使用urlencode函数进行URL编码,在JS客户端通过JS函数decodeURI()进行URL解码后再读取中文信息。

注意:当在PHP页面中通过JSON进行交互,比如将数组转换成JSON格式时,首先请使用urlencode函数对数组key和value进行URL编码然后再使用json_encode函数和urldecode函数。

解决PHP JSON中文乱码方法三:使用字符串编码转换函数

当由于各种原因,数据库编码、PHP页面编码不一致时,比如现有的数据库编码使用GB2312,这时在使用JSON交互时,就需要使用字符串编码转换函数进行字符集之间的转换。常用的函数有iconv,由于iconv需要PHP配置环境支持,如果不支持,你可以通过自行编写gbk与UTF8编码转换函数实现编码转换。

至此,PHP JSON中文字符乱码的三种解决方法就介绍完了,其实在PHP开发中,遇到类似PHP与AJAX/JS进行交互,产生中文乱码时基本都是使用这些方法,思路是类似的。

PHP 相关文章推荐
php执行sql语句的写法
Mar 10 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 PHP
深入解析php中的foreach函数
Aug 31 PHP
php验证session无效的解决方法
Nov 04 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
PHP实现加强版加密解密类实例
Jul 29 PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
Apr 10 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
PHP自定义序列化接口Serializable用法分析
Dec 29 PHP
一些php项目中比较通用的php自建函数的详解
Jun 06 #PHP
强烈声明: 不要使用(include/require)_once
Jun 06 #PHP
探讨PHP调用时间格式的参数详解
Jun 06 #PHP
探讨多键值cookie(php中cookie存取数组)的详解
Jun 06 #PHP
深入密码加salt原理的分析
Jun 06 #PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
Jun 06 #PHP
php定时计划任务的实现方法详解
Jun 06 #PHP
You might like
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
jQuery hover 延时器实现代码
2011/03/12 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
微信小程序动态显示项目倒计时效果
2017/06/13 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
python使用多线程不断刷新网页的方法
2015/03/31 Python
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
Python基于动态规划算法计算单词距离
2015/07/25 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
《母亲的恩情》教学反思
2014/02/13 职场文书
家长对老师的评语
2014/04/18 职场文书
佛光寺导游词
2015/02/10 职场文书
初中美术教学反思
2016/02/17 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS