java web 中亂碼問題

2021-06-05 17:20:34 字數 818 閱讀 8933

string name = new string(request.getparameter("username").getbytes("iso-8859-1"),"gbk");

這樣的接受引數的方法是乙個通用的方法,不管是對get或post提交的方法都有效

一.中文亂碼產生的原因

a)亂碼有很多種,這裡所說的是指web傳入的亂碼,即由瀏覽器傳輸資料到伺服器發生的亂碼。

b)常用的web傳輸方法有 post 和 get 2種,下面分別說明:

i.        post – 由於採用了特殊的加密,所以只要設定正確的character encoding即可,不會產生亂碼

ii.        get - 用此類方法傳輸的資料將以字串的形式直接放在url後面,所以採用的是url 的encode,這種情況不僅會出現中文亂碼,而且假如引數裡面帶有保留字元也將被轉義,特別地,如果引數中帶有&字元,將丟失後面的所有引數或者值

二.解決辦法

解決中文亂碼(應該說是資料傳輸問題),主要應該從用法上解決。上面說了post方法只要設定了正確的character encoding,是不會產生亂碼的,所以應盡量採用post方法來傳輸資料;但是有時候採用get方法是比較方便的,或者是必須的,所以下面也分別介紹2種的對應解決方案:

a)        post – 在web.xml設定filter,filter-class指定為平台的setcharacterencodingfilter類,encoding設定為頁面使用的編碼,示例:

set character encoding

//自己實現乙個filter。。

encoding

utf-8

javaWeb中的亂碼問題

亂碼 中文引起的亂碼 gbk 2位元組乙個字元 utf 8 3位元組乙個字元 iso8859 1 1位元組乙個字元 原因 編碼解碼格式不統一 瀏覽器編碼解碼格式 如果交給瀏覽器的響應報文設定了響應編碼的響應頭,瀏覽器優先使用 如果響應頭中沒有編碼,瀏覽器則去頁面中查詢charset utf 8 使用...

JAVA WEB開發中處理亂碼彙總

在開發中難免會遇到中文顯示亂碼的問題,亂碼問題是乙個很棘手的問題,常常令程式設計師抓狂。現在把我使用的幾種解決亂碼的方案和大家共享!一 表單提交的亂碼處理 表單提交分為get和post兩種提交方式。兩種方式的亂碼解決又不一樣,用post提交只需要在接受的時候加上request.setcharacte...

JavaWeb 提交中文資料亂碼問題總結

如果提交方式為post,想不亂碼,只需要在伺服器端設定request物件的編碼即可,客戶端以哪種編碼提交的,伺服器端的request物件就以對應的編碼接收,比如客戶端是以utf 8編碼提交的,那麼伺服器端request物件就以utf 8編碼接收 request.setcharacterencodin...