隨筆-7  評論-24  文章-102  trackbacks-0


          Ajax開發(fā)過程中提交獲取數(shù)據(jù)的亂碼問題

          摘錄

          # re: Ajax開發(fā)過程中提交獲取數(shù)據(jù)的亂碼問題 2006-09-06 15:32 | 烏鴉在黑夜里飛

          實際上所有的問題都來自編碼的不統(tǒng)一:
          1、HTTP/POST方式在缺省情況下,采用的是“x-www-form-urlencoded”進行編碼,它和JavaScript里面的encodeURI所起的作用是一樣的;
          2、經(jīng)過這樣編碼的內(nèi)容,到達后臺時,其中的字符都是UTF-8編碼格式的;
          3、如果你的Servlet/JSP指定輸出使用的Content-Type是UTF-8,恭喜你,你不需要對這些Parameters進行特別的編碼、解碼操作,它一定是正常的;
          4、否則你需要對這些parameter進行解、編碼操作,例如你的頁面是GBK編碼,那么你需要這么寫:
          String sPara = new String(request.getParamter("test").getBytes("iso-8859-1"),"GBK");
          采用gb2312編碼的也可以采用GBK編碼;
          5、如果你是在eclipse中進行工作,請注意你的Servlet和JSP文件的屬性,其中的編碼必須和content-type中設置的一樣,否則javac會對你的文件進行錯誤的編碼,這時候的字節(jié)碼文件本身的字符串就是錯誤的,輸出也不頂用;
          6、最后做一個總結:
          6.1、servlet/JSP文件本身的編碼必須和content-type輸出的一致,否則需要加入額外的編碼、解碼步驟;
          6.2、HTTP/POST方式和encodeURI方式傳入的編碼都是UTF-8的;
          6.3、普通的window.open(...),也就是HTTP/GET方式,其傳入的編碼是和運行script的頁面編碼一致的;
          6.4、后臺解碼必須通過iso-8859-1進行解碼,再使用你的目標編碼進行編碼;
          6.5、所有的問題基本上可以得到解決。

            回復  更多評論



           


          解決AJAX的亂碼,可以用 escape()函數(shù)的呀。
          escape 方法不能夠用來對統(tǒng)一資源標示碼 (URI) 進行編碼。對其編碼應使用 encodeURI 和encodeURIComponent 方法。

           

           



          在asp中解決亂碼問題只需要在服務器端加上<%Response.ContentType = "text/html;charset=GB2312"%>

           

          posted on 2009-04-25 22:49 黃小二 閱讀(203) 評論(0)  編輯  收藏 所屬分類: Ajax
          主站蜘蛛池模板: 巨野县| 延长县| 恩平市| 昌平区| 新巴尔虎右旗| 宽甸| 汨罗市| 右玉县| 灌阳县| 迁安市| 远安县| 读书| 宁安市| 英山县| 石泉县| 宜兰县| 观塘区| 育儿| 肥东县| 凉城县| 阳高县| 满洲里市| 修武县| 濉溪县| 城市| 罗平县| 临邑县| 乌拉特中旗| 东港市| 洪江市| 昌图县| 泾阳县| 大洼县| 类乌齐县| 潍坊市| 阳春市| 福海县| 兰西县| 太康县| 贵州省| 内江市|