一江春水向東流

          做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks

          AJAX的亂碼的出現在的原因
          由于XMLHTTP采用的是Unicode編碼上傳數據,而一般頁面采用的是gb2312,這就造成顯示頁面時產生亂碼。而當在獲取頁面時的XMLHttp返回的是utf-8編碼,這就造成了顯示產生亂碼。
          解決方法之一就是在PHP文件中顯示聲明為GB2312

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

          而對于發送到服務器的中文進行轉碼。
          如下
          $_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);
          因而這樣可以解決亂碼問題

          方法二,是都采用UTF-8編碼。這里就不多說了

          附測試例程
          客戶端

          <!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 XMLHttpRequest!='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
          header("Content-Type:text/html;charset=GB2312");
          if($_POST['content'])
          {
          ?$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);
          ?print("內容是".$_POST['content']);
          }
          else
          {
          ?print("沒有內容發送");
          }
          ?>

          posted on 2006-12-07 19:45 allic 閱讀(961) 評論(0)  編輯  收藏 所屬分類: PHP+MySQL開發
          主站蜘蛛池模板: 特克斯县| 上饶市| 同仁县| 六安市| 勃利县| 巴林左旗| 旌德县| 上蔡县| 郁南县| 遂溪县| 聂荣县| 威远县| 鹤山市| 孝感市| 确山县| 江都市| 嘉善县| 太保市| 千阳县| 郎溪县| 哈巴河县| 玉林市| 杭锦旗| 县级市| 上栗县| 正定县| 澄江县| 平陆县| 永安市| 眉山市| 兴宁市| 盘山县| 白山市| 彭泽县| 枝江市| 雷州市| 济南市| 阿城市| 北京市| 乳源| 永善县|