get請求亂碼情況

2021-09-06 15:38:52 字數 1522 閱讀 3433

編寫乙個registservlet處理使用者的get請求資料

執行結果發現輸入中文提交後顯示結果為亂碼:

jsp頁面中    通知瀏覽器以utf-8解碼

get請求編碼方式和post請求提交編碼方式不同,get是把資料直接放到url中,例如以上的uname,ie瀏覽器先對中文進行utf-8編碼(乙個中文3個字元表示 太長),繼而為了縮短字元又用iso8859-1編碼後傳遞給伺服器。伺服器的doget方法中要先進行iso8859-1解碼再utf-8解碼才能看到中文。

而post請求則在瀏覽器端把資料以utf-8的形式儲存到http的請求體中,不用通過url傳輸,繼而只要    request.setcharacterencoding("utf-8");通知request以utf-8形式解碼就行,因為request預設以iso8859-1進行解碼的。

使用**解決亂碼問題

如果使用以上的**解決get亂碼每乙個請求引數都需要重新的解碼太繁瑣,因此可以直接使用伺服器通知瀏覽器以指定的方式進行編碼字元資料。

使用urienoding方式解決get亂碼問題

uriencoding主要指定的是%e5%8d%a1%e5%8d%a1的資料的解碼方式,如果沒有指定那麼預設是iso8859-1,如果指定那麼採用指定的碼表進行解碼。因此伺服器端就沒有必要使用兩個中編碼方式進行轉碼了。

http://localhost:8080/day07/regist?uname=焦寧波 在位址列中輸入需要的中文資料【亂碼】

單擊我傳遞中文資料 【亂碼】

以上兩個**出現亂碼狀況一致:位址列中直接原樣出現了中文。

因此對於以上的引數在傳遞的過程中必須進行基本的中文編碼處理。

urlencoder.encode(需要編碼的字元, 需要編碼碼表)

那麼在伺服器端使用get亂碼的解決方案即可。

get請求亂碼

昨天,今天都碰到了get請求亂碼問題,從網上找到了解決辦法,以下是解決過程 1 請求時url是這樣的 而 e5 a4 a7正是大的utf 8編碼e5a4a7 2 然後我調查我的專案的編碼,在web配置中,發現有編碼配置 encodingfilter org.springframework.web.f...

GET請求不亂碼,Ajax請求POST亂碼問題

var params mainform serialize ajax function else error function 我反覆測試,發現get請求就不會亂碼,post傳到controller就是iso8859 1。最終大牛給我修改後的 var params getformjson mainf...

get請求引數中文亂碼

最近遇到的問題,記錄一下,就是get提交中文引數,後台取值是亂碼 使用各種方法,前面幾種方式雖然沒解決問題,但為以後轉碼提供思路,因此mark下 1.js中使用encodeuri 對請求url編碼 2.後台使用urldecoder指定解碼 3.request使用setcharacterencodin...