如何正確處理PHP Ajax亂碼_PHP教程

來源:互聯網
上載者:User
由於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亂碼解決樣本之用戶端

 
  1. < !DOCTYPE HTML PUBLIC "-//W3C//
    DTD HTML 4.01 Transitional//EN">
  2. < html>
  3. < head>
  4. < meta http-equiv="Content-Type"
    content="text/html; charset=gb2312">
  5. < title>ajax post testtitle>
  6. < /head>
  7. < body>
  8. < div id="msg">< /div>
  9. < script language="javascript">
  10. /**
  11. * 初始化一個xmlhttp對象
  12. */
  13. function InitAjax()
  14. {
  15.  var ajax=false;
  16.  try {
  17. ajax = new ActiveXObject
    ("Msxml2.XMLHTTP");
  18.  } catch (e) {
  19. try {
  20.  ajax = new ActiveXObject
    ("Microsoft.XMLHTTP");
  21. } catch (E) {
  22.  ajax = false;
  23. }
  24.  }
  25.  if (!ajax && typeof XMLHttp
    Request!='undefined') {
  26. ajax = new XMLHttpRequest();
  27.  }
  28.  return ajax;
  29. }
  30. //在form 測試頁面內有一個表單,一個顯示的層
  31. function sendData()
  32. {
  33. var msg=document.getElementById("msg");
  34. var f=document.form1;
  35. var c=f.content.value;
  36. //接收資料的URL
  37. var url="dispmsg.php";
  38. var poststr="content="+c;
  39. var ajax=InitAjax();
  40. ajax.open("POST",url,true);
  41. ajax.setRequestHeader("Content-Type",
    "application/x-www-form-urlencoded");
  42. ajax.send(poststr);
  43. ajax.onreadystatechange=function(){
  44. if(ajax.readyState==4 && ajax.status==200){
  45. alert("I got something");
  46. msg.innerHTML=ajax.responseText;
  47. }
  48. }
  49. }
  50. < /script>
  51. < form name='form1'>
  52. < input type="text" name='content' size=10>
  53. <input type="button" value="確定"
    onclick="sendData()">< !--我用submit時就出錯-->
  54. < /form>
  55. < /body>
  56. < /html>

PHP Ajax亂碼解決樣本之伺服器端

 
  1. < ?php
  2. header("Content-Type:text
    /html;charset=GB2312");
  3. if($_POST['content'])
  4. {
  5. $_POST["content"]=iconv("
    UTF-8","gb2312",$_POST["content"]);
  6. print("內容是".$_POST['content']);
  7. }
  8. else
  9. {
  10. print("沒有內容發送");
  11. }
  12. ?>

以上程式碼範例就是PHP Ajax亂碼的相關解決方案,希望對又需要的朋友有所協助。


http://www.bkjia.com/PHPjc/446195.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446195.htmlTechArticle由於XMLHTTP採用的是Unicode編碼上傳資料,而一般頁面採用的是gb2312,這就造成顯示頁面時產生亂碼。而當在擷取頁面時的XMLHttp返回的是utf-8編...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.