首页 > 开发 > AJAX > 正文

ajax+php出现中文乱码怎么办?

2024-09-01 08:30:14
字体:
来源:转载
供稿:网友

  很多朋友会问小编Ajax+php出现中文乱码怎么办呢?下面小编就给大家分享一篇关于ajax+php出现中文乱码的处理方案吧,感兴趣的朋友跟小编一起来了解一下吧!

  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编码。这里就不多说了

  附测试例程

  客户端

  

  

  

  

  

  

  

 

  

  

  /**

  *初始化一个xmlhttp对象

  */

  functionInitAjax()

  {

  varajax=false;

  try{

  ajax=newActiveXObject("Msxml2.XMLHTTP");

  }catch(e){

  try{

  ajax=newActiveXObject("Microsoft.XMLHTTP");

  }catch(E){

  ajax=false;

  }

  }

  if(!ajax&&typeofXMLHttpRequest!='undefined'){

  ajax=newXMLHttpRequest();

  }

  returnajax;

  }

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

  functionsendData()

  {

  varmsg=document.getElementById("msg");

  varf=document.form1;

  varc=f.content.value;

  //接收数据的URL

  varurl="dispmsg.php";

  varpoststr="content="+c;

  varajax=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("Igotsomething");

  msg.innerHTML=ajax.responseText;

  }

  }

  }

  

  ='form1'>

  

  

  

  

  

  服务器端

  

  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+php出现中文乱码的处理方案,更多相关内容请继续关注错新技术频道。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表