ajax+php中文乱码解决办法

 更新时间:2007年04月04日 00:00:00   作者:  
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编码。这里就不多说了

附测试例程
客户端


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ajax post test</title> 
</head>
<body>
<div id="msg"></div>
<script language="javascript">
/**
* 初始化一个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;
  }
 }
}

</script>

<form name='form1'>
<input type="text" name='content' size=10>
<input type="button" value="确定" onclick="sendData()"><!--我用submit时就出错-->
</form>
</body>
</html>



 

服务器端
<?php
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

相关文章

  • Ajax获取到数据放入echarts里不显示的原因分析及解决办法

    Ajax获取到数据放入echarts里不显示的原因分析及解决办法

    在做一个需要用到echarts地图的项目的时候,成功通过ajax获取到了后台提供的数据,并生成了想要的JSON串。但是,放到echarts option.series[0].data里,获取不到数据。在生成的地图上无法看到你从后台获取到的值,下面小编给大家分享我的解决办法,需要的朋友参考下
    2016-01-01
  • ajaxForm和ajaxSubmit 粘贴就可用示例代码

    ajaxForm和ajaxSubmit 粘贴就可用示例代码

    这篇文章主要介绍了ajaxForm和ajaxSubmit 粘贴就可用示例代码,需要的朋友可以参考下
    2014-02-02
  • jquery中的ajax同步和异步详解

    jquery中的ajax同步和异步详解

    jquery ajax同步的意思是当JS代码加载到当前ajax的时候会把页面里所有的代码停止加载,页面出现了假死状态,当这个ajax执行完毕后才会继续运行其他的代码假死状态解除。而异步的意思是这个ajax代码运行中的时候其他代码一样可以运行。本文给大家详解,感兴趣的朋友参考下
    2015-09-09
  • 一个方便AJAX开发的通用类

    一个方便AJAX开发的通用类

    [红色]一个方便AJAX开发的通用类...
    2006-12-12
  • 快速获取Ajax通信对象的方法

    快速获取Ajax通信对象的方法

    下面小编就为大家带来一篇快速获取Ajax通信对象的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Ajax按需读取数据生成下级菜单

    Ajax按需读取数据生成下级菜单

    Ajax按需读取数据生成下级菜单...
    2006-08-08
  • Ajax 对象 包含post和get两种异步传输方式

    Ajax 对象 包含post和get两种异步传输方式

    Ajax对象接受一个对象字面量为参数,这个对象字面量中包含method,url,success,params,fail参数
    2009-07-07
  • AJAX和JSP混合使用方法实例

    AJAX和JSP混合使用方法实例

    AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。下面通过本文给大家介绍AJAX和JSP混合使用方法实例,感兴趣的朋友一起学习吧
    2016-02-02
  • 编写轻量ajax组件02--浅析AjaxPro

    编写轻量ajax组件02--浅析AjaxPro

    ajaxpro虽然是一个比较老的组件,不过实现思想和源码还是很有借鉴价值的。接下来通过本篇文章给大家介绍编写轻量ajax组件02--浅析AjaxPro,感兴趣的朋友可以参考下
    2015-11-11
  • ajax异步实现文件分片上传实例代码

    ajax异步实现文件分片上传实例代码

    这篇文章主要给大家介绍了关于ajax异步实现文件分片上传的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论