如果表單中含有中文,採用get或者post提交請求時,getparameter()方法接收到的引數值亂碼。
1、亂碼產生的原因
請求引數通過瀏覽器傳送給tomcat伺服器,瀏覽器傳送編碼,但是tomcat預設採用iso-8859-1編碼進行處理,因此利用getparamenter()取出是亂碼。
2、post提交時的解決方法
在servlet中呼叫request.getparameter()方法,執行下面**
1 //解決post中文亂碼,將tomcat解析http協議body體編碼設定為utf-8
2 request.setcharacterencoding("utf-8");
3、get提交時的解決方法
get提交時,引數是採用http協議head傳遞,因此request.setcharacterencoding()對get無效。需要手動編碼轉換。
1 string name = request.getparameter("name");2//將name採用utf-8轉碼
3 name = new string(name,getbytes("iso-8859-1"),"utf-8");
建議:在使用中,如果存在中文資訊提交,推薦使用post提交。
過濾器解決get和post方式提交的中文亂碼
對於國內的程式設計師來說,在做專案時避免不了的問題是中文亂碼問題。如果不使用過濾器的話,在每個servlet中都要進行設定編碼,如果是post請求還好,但是如果是get請求,就要手動進行轉碼,相當麻煩。下面來介紹一下過濾器解決表單提交中的中文亂碼問題。過濾器,顧名思義就是過濾用的,它可以在請求 響應...
如何解決POST和GET方式的中文亂碼問題
對於post請求 一 確保表單所在的頁面按照指定的字符集開啟 在html頁面中使用meta標記可以確保瀏覽器按照指定的字符集進行解碼頁面,並限定表單提交時的資料編碼方式 在伺服器端需要在呼叫getparameter 方法讀取引數之前,告訴瀏覽器如 何解碼,使用如下 即可完成該設定 request.s...
Get方式和Post方式在傳遞中文時處理亂碼的訪問
亂碼的問題是由於 編碼字元集合,解碼字符集不一致造成的。各個伺服器在處理web請求中的中文,方式是不同的。如 tomcat在處理請求時預設使用的字符集是 iso 8859 1。別的伺服器也有它們的字符集 我們可以通過改變配置檔案中的引數更改伺服器使用的字符集如。tomcat 的server.xml中...