解决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 sprintf()函数让你的sql操作更安全
Jul 23 PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 PHP
PHP循环结构实例讲解
Feb 10 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
PHP使用file_get_content设置头信息的方法
Feb 14 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
php实用代码片段整理
Nov 12 PHP
MAC下通过改apache配置文件切换php多版本的方法
Apr 26 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
Apr 03 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基于GD库画五星红旗的方法
2015/02/24 PHP
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
js window.onload 加载多个函数的方法
2009/11/02 Javascript
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
Nodejs模块的调用操作实例分析
2018/12/25 NodeJs
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
浅谈编码,解码,乱码的问题
2016/12/30 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
顶撞领导检讨书
2014/01/29 职场文书
销售主管岗位职责
2014/02/08 职场文书
服装促销活动方案
2014/02/23 职场文书
商业街策划方案
2014/05/31 职场文书
中专生自荐信
2014/06/25 职场文书
白酒代理协议书范本
2014/10/26 职场文书
追悼词范文大全
2015/06/23 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android