PHP语言功能虽然强大,但是在实际编程中难免会遇到一些问题,只有偶很好的解决了这些问题,才能更熟练的掌握运用这门语言。下面我们就向大家介绍PHP Ajax乱码的具体解决方法。
#t#由于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乱码解决示例之服务器端
- < ?php
- header("Content-Type:text
/html;charset=GB2312");- if($_POST['content'])
- {
- $_POST["content"]=iconv("
UTF-8","gb2312",$_POST["content"]);- print("内容是".$_POST['content']);
- }
- else
- {
- print("没有内容发送");
- }
- ?>
以上代码示例就是PHP Ajax乱码的相关解决方法,希望对又需要的朋友有所帮助。