由於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 testtitle>
- < /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亂碼的相關解決方案,希望對又需要的朋友有所協助。
http://www.bkjia.com/PHPjc/446195.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446195.htmlTechArticle由於XMLHTTP採用的是Unicode編碼上傳資料,而一般頁面採用的是gb2312,這就造成顯示頁面時產生亂碼。而當在擷取頁面時的XMLHttp返回的是utf-8編...