解决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 相关文章推荐
写一个用户在线显示的程序
Oct 09 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
PHPStrom 新建FTP项目以及在线操作教程
Oct 16 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
Feb 15 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
php unlink()函数使用教程
Jul 12 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
Jan 23 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下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
php中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
Angular6封装http请求的步骤详解
2018/08/13 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
在Docker上开始部署Python应用的教程
2015/04/17 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
python mysql中in参数化说明
2020/06/05 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
全球虚拟主机商:HostGator
2017/02/06 全球购物
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
学校安全检查制度
2014/01/27 职场文书
一句话工作感言
2014/03/01 职场文书
找工作求职信
2014/07/07 职场文书
观看信仰心得体会
2014/09/04 职场文书
python基础之while循环语句的使用
2021/04/20 Python
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
Java版 单机五子棋
2022/05/04 Java/Android