解决ajax+php中文乱码的方法详解


Posted in PHP onJune 09, 2013

中文如果用表单提交的话,不会出现乱码,而用ajax提交就会出现乱码,这是什么原因呢?

我的理解是,我在写源码的时候,一般用记事本写,保存的时候默认用ANSI编码,源码中也没有用“<meta http-equiv=Content-Type content=text/html;charset=UTF-8>”或“header('Content-Type:text/html;charset=UTF-8');”指定网页编码,于是在浏览器中显示时它的编码被认定为“GB2312”。当前台向后台传递数据的时候,用表单提交的话,前后台之间用“GB2312”编码交流,不会出现乱码;而用ajax提交的话,ajax在前台把要发送的数据编码从“GB2312”转换 成“UTF-8”后再传给后台,然后再把接收到的后台返回的数据当成是 “UTF-8”而把它转换 成“GB2312”后显示在前台页面上,这样乱码就产生了。
如图:
解决ajax+php中文乱码的方法详解

所以要解决乱码,要在后台进行数据编码转换,后台接收到的数据用PHP的mb_convert_encoding("要转换的数据","gb2312","UTF-8")进行转换后存储到数据库。而后台返回到前台的中文数据也要用mb_convert_encoding("要返回的数据","UTF-8","gb2312")转换后返回。

PHP 相关文章推荐
php正则
Jul 07 PHP
php+mysql写的简单留言本实例代码
Jul 25 PHP
PHP无敌近乎加密方式!
Jul 17 PHP
php输出表格的实现代码(修正版)
Dec 29 PHP
PHP下通过file_get_contents的代理使用方法
Feb 16 PHP
PHP无限分类(树形类)
Sep 28 PHP
wordpress安装过程中遇到中文乱码的处理方法
Apr 21 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
如何使用php等比例缩放图片
Oct 12 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
Oct 24 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 #PHP
PHP版 汉字转码的实现详解
Jun 09 #PHP
php批量上传的实现代码
Jun 09 #PHP
PHP转换IP地址到真实地址的方法详解
Jun 09 #PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
Jun 09 #PHP
探讨PHP删除文件夹的三种方法
Jun 09 #PHP
如何用php获取文件名后缀
Jun 09 #PHP
You might like
PHP中的cookie
2006/11/26 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
PHP导入Excel到MySQL的方法
2011/04/23 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
jQuery 获取URL参数的插件
2010/03/04 Javascript
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
js实现对table的增加行和删除行的操作方法
2016/10/13 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
require.js中的define函数详解
2017/07/10 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
用Python解决计数原理问题的方法
2016/08/04 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
python pygame实现2048游戏
2018/11/20 Python
python输入中文的实例方法
2020/09/14 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
new修饰符是起什么作用
2015/06/28 面试题
先进班级集体事迹材料
2014/01/30 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
企业投资意向书
2015/05/09 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis