JSP中文亂碼問題

2021-08-22 20:01:15 字數 1196 閱讀 7781

1、很顯然我們使用get或post方法傳送資料時,用的是機器上的預設編碼,在中文系統中使用的是gb2312,那麼我們應該設定request.setcharacterencoding("utf-8"),將傳送過來的編碼轉換為utf-8的編碼,則在顯示的時候就不會顯示為亂碼了,

因為我的eclipse是使用的utf-8方式顯示的,那麼這樣就能避免亂碼問題。

2、而我們在<%@ page pageencoding="utf-8"%>中設定的只是對當前的jsp檔案在硬碟中的儲存編碼。

3、在我看來當我們沒有指定乙個頁面的編碼時預設為系統預設的編碼,在轉換為

utf-8時會發生錯誤。

4、get 方法 是使用的iso-8859_1 編碼傳送的,通過伺服器中的uriencoding="utf-8" 我們把它轉換為了utf-8編碼,但是我們在以utf-8接受時有些漢字還是會出現問題,有待解決中。。。

5、解決中文亂碼問題最有效的途徑是 :將傳過來的字元以當前預設的編碼編碼為位元組陣列,然後將位元組陣列再解碼為我們需要的字元;例如:中文字串 str

可以這樣出來 str = new string(str.getbytes("iso-8859-1"),"gb2312")。

6、在記憶體中各種字元都是以byte 的形式儲存的,再輸入裝置輸入字元時,將其以平台預設的字符集將其編碼為位元組,並儲存;而輸出時將根據字符集中的字元輸出,如果我們將乙個字元以一種字符集編碼,則輸出時系統將根據這種字符集中對應的字元輸出,這樣我們就能看到字元了,如果字符集中不存在相應的字元則顯示為亂碼。各種字符集之間的解碼方式不同而且編碼也不相同。

7、所謂的解碼,是將以一種字符集編碼的位元組序列,解釋為以另一種字符集編碼的位元組序列。每種字符集中的字元編碼不盡相同。

8、jsp頁面中文亂碼終極解決:

* 因為在ie6中uri是以iso8859-1傳送的;

* 在伺服器端接受了中文引數後,很難正確的轉換

* 特別是以uri重寫的方式,以標籤進行頁面的跳轉時,即使你是以utf-8的字元形式傳送的中文字元,在服務端也是無法解析的

* 解決辦法:

# 將要使用的中文字元在伺服器端使用urlencoder進行編碼為utf-8的形式;

# 注意在伺服器端接受引數的時候我們也無法用urldecoder進行解碼,因為此時的編碼是iso8859-1的,無法解碼為utf-8的

# 只有將引數按照iso8859-1編碼形式編碼為字串行,此時才能將字串行平台無關的轉換為utf-8

jsp中文亂碼問題

問題說明 由於瀏覽器中的引數傳遞是按位元組傳送,因此英文和數字不會有任何的問題 而中文漢字則由兩個位元組組成.1.request.getparameter name 預設採用的按照iso碼表取值,所以如果不指定request.setcharacterencoding utf 8 就會對中文不適應。那...

jsp中文亂碼問題

eclipse預設新建的jsp檔案編碼是不支援中文的,每次改都好麻煩,網上的設定是各種分析什麼gb2312,包括之前的教材也是,真的好麻煩,決定直接上utf 8 1 設定預設新建的jsp檔案為utf 8模式 如何在eclipse中修改jsp預設編碼 2 設定utf 8之後,jsp檔案中寫中文是沒問題...

JSP 中文亂碼問題

關於中文亂碼 1 在jsp頁面上輸入中文,請求頁面後不出現亂碼 保證contenttype text html,charset utf 8 pageencoding utf 8 中的charset和pageencoding的編碼一致,且都支援中文。還需要保證瀏覽器的顯示的字元編碼和請求編碼一致。中文...