Ajax 開發中遇到的亂碼問題

來源:互聯網
上載者:User

Ajax開發過程中提交擷取資料的亂碼問題

摘錄

# re: Ajax開發過程中提交擷取資料的亂碼問題 2006-09-06 15:32 | 烏鴉在黑夜裡飛

實際上所有的問題都來自編碼的不統一:
1、HTTP/POST方式在預設情況下,採用的是“x-www-form-urlencoded”進行編碼,它和JavaScript裡面的encodeURI所起的作用是一樣的;
2、經過這樣編碼的內容,到達後台時,其中的字元都是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會對你的檔案進行錯誤的編碼,這時候的位元組碼檔案本身的字串就是錯誤的,輸出也不頂用;
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()函數的呀。
escape 方法不能夠用來對統一資源標示碼 (URI) 進行編碼。對其編碼應使用 encodeURI 和encodeURIComponent 方法。

 

 

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.