目錄:html
一、Request中文亂碼tomcat
2、tomcat 中文亂碼post
1、Request中文亂碼
編碼
解決request中文亂碼的問題spa
request.setCharacterEncoding(charset);必須寫在第一次使用request.getParametercode
()以前,htm
這樣才能保證參數是按照已經設置的字符編碼來獲取。get
response.setCharacterEncoding(charset);必須寫在PrintWriter out =it
request.getWriter()以前,字符編碼
這樣才能保證out按照已經設置的字符編碼來進行字符輸出。
經過過濾器,咱們能夠保證在Servlet或JSP執行以前就設置好了請求和響應的字符編碼
。
可是這樣並不能徹底解決中文亂碼問題:
對於post請求,不管是「獲取參數環節」仍是「輸出環節"都是沒問題的;
對於get請求,"輸出環節"沒有問題,可是"獲取參數環節"依然出現中文亂碼,因此在輸
出時直接將亂碼輸出了。
緣由是post請求和get請求存放參數位置是不一樣的:
post方式參數存放在請求數據包的消息體中。get方式參數存放在請求數據包的請求行的
URI字段中,
以?開始以param=value¶me2=value2的形式附加在URI字段以後。而
request.setCharacterEncoding(charset);
只對消息體中的數據起做用,對於URI字段中的參數不起做用。
當使用request.setCharacterEncoding(charset);時,只能解決表單方法爲POST的中文
亂碼狀況,而方法爲GET的依然爲亂碼。
解決GET亂碼:
String str =request.getParameter("URL後面的變量名"); byte b[] =str.getBytes("ISO-8859-1"); str = newString(b);
,