如何正確處理PHP Ajax亂碼
PHP語言功能雖然強(qiáng)大,但是在實(shí)際編程中難免會(huì)遇到一些問題,只有偶很好的解決了這些問題,才能更熟練的掌握運(yùn)用這門語言。下面我們就向大家介紹PHP Ajax亂碼的具體解決方法。
#t#由于XMLHTTP采用的是Unicode編碼上傳數(shù)據(jù),而一般頁面采用的是gb2312,這就造成顯示頁面時(shí)產(chǎn)生亂碼。而當(dāng)在獲取頁面時(shí)的XMLHttp返回的是utf-8編碼,這就造成了顯示產(chǎn)生亂碼。
PHP Ajax亂碼解決方法之一就是在PHP文件中顯示聲明為GB2312
header("Content-Type:text/html;charset=GB2312");
而對(duì)于發(fā)送到服務(wù)器的中文進(jìn)行轉(zhuǎn)碼。
如下
$_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">
- /**
- * 初始化一個(gè)xmlhttp對(duì)象
- */
- 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 測(cè)試頁面內(nèi)有一個(gè)表單,一個(gè)顯示的層
- function sendData()
- {
- var msg=document.getElementById("msg");
- var f=document.form1;
- var c=f.content.value;
- //接收數(shù)據(jù)的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時(shí)就出錯(cuò)-->- < /form>
- < /body>
- < /html>
PHP Ajax亂碼解決示例之服務(wù)器端
- < ?php
- header("Content-Type:text
/html;charset=GB2312");- if($_POST['content'])
- {
- $_POST["content"]=iconv("
UTF-8","gb2312",$_POST["content"]);- print("內(nèi)容是".$_POST['content']);
- }
- else
- {
- print("沒有內(nèi)容發(fā)送");
- }
- ?>
以上代碼示例就是PHP Ajax亂碼的相關(guān)解決方法,希望對(duì)又需要的朋友有所幫助。