一江春水向東流

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

            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開發
          主站蜘蛛池模板: 屯昌县| 广南县| 陇南市| 兴安县| 木兰县| 庄浪县| 淮北市| 安仁县| 白玉县| 那曲县| 格尔木市| 安义县| 福鼎市| 仙游县| 海伦市| 北京市| 汶川县| 永春县| 涿鹿县| 眉山市| 铁力市| 乌鲁木齐县| 肃宁县| 光山县| 永仁县| 九江县| 且末县| 景德镇市| 加查县| 安庆市| 义乌市| 西乡县| 浑源县| 榆树市| 湖口县| 安吉县| 星子县| 婺源县| 揭西县| 百色市| 奇台县|