WEB項目中的中文亂碼問題

目錄: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&parame2=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);

相關文章
相關標籤/搜索