ajax不支援多種字符集,其預設的字符集是utf-8,所以在應用ajax技術的程式中應及時進行編碼轉換,否則對於程式中出現
的中文字元將變成亂碼。一般在以下兩種情況下將產生亂碼。
1.傳送路徑的引數中包括中文,在伺服器端接收引數值時產生亂碼
將資料提交到伺服器有兩種方法:一種是使用get方法提交;另一種是使用post方法提交。使用不同的方法提交資料,在伺服器端接收引數時解決中文亂碼的方法是不同的。具體解決方法如下。
(1)當接收使用get方法提交的資料時,要將編碼轉換為gbk或是gb2312。例如:將省份名稱的編碼轉換為gbk的**如下。
string selprovince = request.getparameter("parprovince");//獲取選擇的省份
selprovince = new string(selprovince.getbytes("iso-8859-1"),"gbk");
(2)由於應用post方法提交資料時,預設的字元編碼是utf-8,所以當接收使用post方法提交的資料時,要將編碼轉換為utf-8。例如,將使用者名稱的編碼轉換為utf-8的**如下。
string username = request.getparameter("user");//獲取使用者名稱
username = new string(username.getbytes("iso-8859-1"),"utf-8");
2.返回到responsetext或respon***ml的值中包含中文時產生亂碼
由於ajax在接收responsetext或respon***ml的值時是按照utf-8的編碼格式進行解碼的,所以如果伺服器端傳遞的資料不是utf-8格式,在接收responsetext或respon***ml的值時就可能產生亂碼。解決的方法是保證從伺服器端傳遞的資料採用utf-8的編碼格式。
ajax中文亂碼問題解決方案
在使用ajax傳送請求給後台時,出現了中文亂碼問題,搜尋了很久之後得出最好的解決方法 encodeuricomponent,用法示例如下 ajax url something.do success function data encodeuricomponent方法將字串轉義,官方解釋如下 enco...
Ajax中文亂碼問題解決方案(servlet)
最近研究ajax,在介面上text中輸入中文,傳送出去後返回亂碼。經過乙個晚上的測試,以及得到滿意答案,如下 html 實際上這裡的charset utf 8 也是可以的,因為在中文平台下 用了gb2312 js 我用了兩個方法提交 get 和 post。在伺服器端要對應不同的提交方式轉換不同的編碼...
中文亂碼問題解決方案
1.接收中文引數亂碼 a.以get方式提交引數亂碼,在server.xml檔案中catelina標籤中新增乙個屬性uriencoding utf 8 b.以post方式提交引數亂碼,在接收引數之前設定request物件的編碼方式 request.setcharacterencoding utf 8 ...