Ajax中文亂碼問題解決方案(servlet)

2021-04-13 09:37:30 字數 960 閱讀 6107

最近研究ajax,在介面上text中輸入中文,傳送出去後返回亂碼。經過乙個晚上的測試,以及得到滿意答案,**如下:

html:

……//實際上這裡的charset=utf-8 也是可以的,因為在中文平台下

//用了gb2312

js:我用了兩個方法提交:get 和 post。

在伺服器端要對應不同的提交方式轉換不同的編碼。

……//要傳遞的引數

var querystring = "firstname=" + firstname + "&lastname=" + lastname

+ "&birthday=" + birthday;    function 

//get方式提交

dorequestusingget()

servlet:

response.setcontenttype("text/xml");

//這個一定要設定,這裡的設定應該跟html中的一樣,但是我在這裡

//用了 uft-8, 結果也是一樣。

response.setcharacterencoding("gb2312");

//當用post方法時,一定要設定成utf-8,否則亂碼

string firstname = new string(request.getparameter("firstname").getbytes("iso-8859-1"), "utf-8");

//當用get方法時,要設定成gb2312,否則亂碼。

string lastname = new string(request.getparameter("lastname").getbytes("iso-8859-1"), "gb2312");

測試結果:

因為介面上兩個控制項firstname 和  lastname都輸入中文。

接收xmlhttp.responsetext後,會發現其中乙個為亂碼,乙個可以正常顯示中文。 

ajax中文亂碼問題解決方案

在使用ajax傳送請求給後台時,出現了中文亂碼問題,搜尋了很久之後得出最好的解決方法 encodeuricomponent,用法示例如下 ajax url something.do success function data encodeuricomponent方法將字串轉義,官方解釋如下 enco...

中文亂碼問題解決方案

1.接收中文引數亂碼 a.以get方式提交引數亂碼,在server.xml檔案中catelina標籤中新增乙個屬性uriencoding utf 8 b.以post方式提交引數亂碼,在接收引數之前設定request物件的編碼方式 request.setcharacterencoding utf 8 ...

Ajax中文編碼問題解決方案

ajax不支援多種字符集,其預設的字符集是utf 8,所以在應用ajax技術的程式中應及時進行編碼轉換,否則對於程式中出現 的中文字元將變成亂碼。一般在以下兩種情況下將產生亂碼。1.傳送路徑的引數中包括中文,在伺服器端接收引數值時產生亂碼 將資料提交到伺服器有兩種方法 一種是使用get方法提交 另一...