ajax+php中文乱码解决办法
ajax+php中文乱码解决办法
发布时间:2016-12-29 来源:查字典编辑
摘要:AJAX的乱码的出现在的原因由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码...

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

附测试例程

客户端

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">

<title>ajaxposttest</title>

</head>

<body>

<divid="msg"></div>

<scriptlanguage="javascript">

/**

*初始化一个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;

}

}

}

</script>

<formname='form1'>

<inputtype="text"name='content'size=10>

<inputtype="button"value="确定"onclick="sendData()"><>

</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相关学习
热门AJAX相关学习
编程开发子分类