如何正确处理PHP Ajax乱码

PHP语言功能虽然强大,但是在实际编程中难免会遇到一些问题,只有偶很好的解决了这些问题,才能更熟练的掌握运用这门语言。下面我们就向大家介绍PHP Ajax乱码的具体解决方法。

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

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

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

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

如下

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

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

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

PHP Ajax乱码解决示例之客户端

< !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 XMLHttp
Request!='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 Ajax乱码解决示例之服务器端

相关推荐