AJAX的乱码的出现在的原因

由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码。而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码。

解决方法之一就是在PHP文件中显示声明为GB2312

header("Content-Type:text/html;charset=GB2312");

而对于发送到服务器的中文进行转码。

如下

$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);

因而这样可以解决乱码问题

方法二,是都采用UTF-8编码。这里就不多说了

附测试例程

客户端

ajax post test

/**

* 初始化一个xmlhttp对象

*/

function InitAjax()

{

var ajax=false;

try {

ajax = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

ajax = new ActiveXObject("Microsoft.XMLHTTP");

} catch (E) {

ajax = false;

}

}

if (!ajax && typeof XMLHttpRequest!='undefined') {

ajax = new XMLHttpRequest();

}

return ajax;

}

//在form 测试页面内有一个表单,一个显示的层

function sendData()

{

var msg=document.getElementById("msg");

var f=document.form1;

var c=f.content.value;

//接收数据的URL

var url="dispmsg.php";

var poststr="content="+c;

var ajax=InitAjax();

ajax.open("POST",url,true);

ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

ajax.send(poststr);

ajax.onreadystatechange=function(){

if(ajax.readyState==4 && ajax.status==200){

alert("I got something");

msg.innerHTML=ajax.responseText;

}

}

}

服务器端

header("Content-Type:text/html;charset=GB2312");

if($_POST['content'])

{

$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);

print("内容是".$_POST['content']);

}

else

{

print("没有内容发送");

}

?>

引用自:http://www.blogjava.net/huyi2006/articles/86154.html

PHP ajax 传递中文乱码,ajax+php传递中文乱码解决办法相关推荐

  1. IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法

    转载自  IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法 最近在测试兼容性问题的时候发现,使用Ajax的GET请求向后台获取响应结果时,如果是IE8浏览器,第一次发送请求时会得到正 ...

  2. 文件下载时设置文件名以及中文被转换成下划线的解决办法

    文件下载时中文被转换成下划线的解决办法 先上问题 解决办法很简单,直接在返回的时候加以下代码 response.setContentType("application/force-downl ...

  3. 为何计算机用户名无法改回,电脑用户名为中文导致一些程序无法正常运行的解决办法,将电脑用户名的中文改为英文。...

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 电脑用户名为中文导致一些程序无法正常运行的解决办法.将电脑用户名的中文改为英文 ...

  4. VS代码中文注释下有红色波浪线解决办法

    VS代码中文注释下有红色波浪线解决办法 打开VS导入代码后,发现了许多错误,一一改正后可以运行了,真的是nice !但是仔细一看,代码文件中的中文注释下面都有红色波浪线,纳,作为程序员对于红色波浪线简 ...

  5. 计算机超级用户名英文,电脑用户名为中文导致一些程序无法正常运行的解决办法,将电脑用户名的中文改为英文。...

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 电脑用户名为中文导致一些程序无法正常运行的解决办法.将电脑用户名的中文改为英文 ...

  6. ajax微信浏览器,jquery1.8版本使用ajax实现微信调用出现的问题分析及解决办法

    先给大家说下问题背景:最近在做一个项目,开发微信的某个功能,使用的是asp.net开发,jquery1.8.0版本. 在微信中点击按钮触发事件,调用ajax与服务器端进行交互,回调函数走的是error ...

  7. 中文输入法不触发onkeyup事件的解决办法

    2019独角兽企业重金招聘Python工程师标准>>> 这两天做一个需要实时监控文本框输入的功能,碰到了中文输入法无法触发onkeyup事件的恶心问题. 具体表现是这样的: 当监听一 ...

  8. source insight删除保存路径为中文的project工程项目报错的解决办法

    http://blog.csdn.net/yixilee/archive/2010/09/01/5855663.aspx source insight删除已加载的project工程项目报错的解决办法 ...

  9. cad细等线体不显示_CAD图纸乱码、钢筋符号不显示解决办法(内含万能字体)

    好课推荐: 零基础CAD:点我CAD室内:点我 周站长CAD:点我CAD机械:点我 Bim教程:点我CAD建筑:点我CAD三维:点我全屋定制:点我 ps教程:点我苹果版CAD:点我 3dmax教程:点 ...

  10. Linux——Ubuntu安装Fcitx以及Fcitx输入中文不显示候选词框的解决办法

    一.安装Fcitx 1.安装Fcitx所需组件 $ sudo apt install fcitx fcitx-tools fcitx-config* fcitx-frontend* fcitx-mod ...

最新文章

  1. 磁盘调度算法java代码
  2. 临沧计算机教试报名,2019下半年临沧小学计算机教师资格证考什么?
  3. namenode启动不了以及datanode启动不了的解决办法
  4. XMPP聊天之Openfire 的安装和配置---Mac OS
  5. hive 导入hdfs数据_将数据加载或导入运行在基于HDFS的数据湖之上的Hive表中的另一种方法。
  6. Objective-C消息转发
  7. 全国计算机一级试题重难点,全国计算机等级考试一级MS选择题(重难点)部分.doc...
  8. android中dip、dp、px、sp和屏幕密度
  9. 获取Kubernetes容器上下文环境
  10. 网页怎么调用云服务器资源,如何将网页资源放到云服务器
  11. python加载mnist数据集
  12. 大转盘抽奖小程序源码
  13. linux sql server 迁移,SQL Server2008 实例数据迁移步骤
  14. 《大明王朝》掠之于官
  15. 华为又一重拳!迄今为止最强5G基带芯片、全球最快CPE正式发布!...
  16. C语言八行杨辉三角空格数,C语言 杨辉三角
  17. Mac下安装cordova-hot-code-push-cli失败
  18. fgetc和方fread读不到文件末尾出现ffffff或0时解决方法
  19. 分区变成RAW格式,万幸恢复出数据
  20. k8s暴露端口的方式

热门文章

  1. 采用存储复制方式同步数据,实现数据库安全升级
  2. 洛谷 P1272 重建道路
  3. [SCOI2009]最长距离
  4. LeetCode | HouseCode 算法题
  5. Linux之Json20160705
  6. ios UIScrollView 基础属性
  7. hadoop fs 基本命令
  8. 在朋友圈求助的NTP问题~
  9. 操作系统中抢占式和非抢占式内核的区别
  10. 分享一篇很不错的CMake入门文章,值得收藏细读!