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...