對于Post請求,只需在Servlet或者jsp中寫入如下代碼就可以把解決從表單中傳入的中文亂碼問題
request.setCharacterEncoding("utf-8");
而對于Get請求,因為請求參數會被附加到地址欄的URL之后,所以不能用上面的處理方法。應該這樣:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
String str=request.getQueryString(); //使用URLDecoder解碼字符串 String str1=java.net.URLDecoder.decode(str, "utf-8" ); String[] paraStrings=str1.split( "&" ); //paraStrings[0]就是第一個參數,依次類推... for (String paraString : paraStrings) { String[] nameValue=paraString.split( "=" ); //nameValue[0]就是表單的name,nameValue[1]就是表單name對應的值 } |
還有一種方法就是獲取請求參數之后對請求參數值重新編碼,也就是先將其轉換成字節數組,再將字節數組重新解碼成字符串。
1
2
3
4
5
|
String str=request.getParameter( "name" ); byte [] bytes=str.getBytes( "ISO-8859-1" ); String name= new String(bytes, "utf-8" ); |
以上這篇完美解決Get和Post請求中文亂碼的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。