post和get請求中文亂碼問題

2021-09-18 03:39:22 字數 725 閱讀 9719

post和get是提交表單時的兩種請求方式。

當瀏覽器傳送post請求時,資料以utf-8的形式儲存到http的請求體中,不用通過url傳輸。當提交表單後,解析request的預設編碼是"iso-8859-1",這就是造成亂碼的原因。

request.

setcharacterencoding

("utf-8"

);

將post請求體中的中文引數,通過utf-8字符集解碼即可。

get方式把資料直接放到url中,瀏覽器先對中文進行utf-8編碼,為了縮短字元又用iso8859-1編碼後傳遞給伺服器。伺服器的doget方法中要先進行iso8859-1解碼再utf-8解碼才能看到中文。

第一種方式:

string name = request.

getparameter

("username");

username =

newstring

(name.name.

getbytes

("iso8859-1"),

"utf-8"

);

第二種方式:

new

string

(filename.

getbytes

("gbk"),

"ios8859-1"

)

get與post請求中文亂碼問題

解決方法 1 方法 首先通過字串將iso 8859 1的編碼轉化為對應的位元組陣列,在通過字串構造方法轉化為utf 8編碼格式的字串。new string 中文 getbytes iso 8859 1 utf 8 實際應用 1 配置中文亂碼過濾器 如下 中文亂碼過濾器 characterencodi...

解決Get和post請求中中文亂碼問題

1.對於post請求,只需在servlet或者jsp中寫入如下 就可以把解決從表單中傳入的中文亂碼問題 request.setcharacterencoding utf 8 string str request.getparameter name byte bytes str.getbytes is...

解決 post和get請求亂碼

在web.xml新增post亂碼filter 在web.xml中加入 filter filter name characterencodingfilter filter name filter class org.springframework.web.filter.characterencodin...