以get方式提交中文引數亂碼的解決方法

2021-07-04 10:10:41 字數 495 閱讀 5242

在用get提交時,如果含有中文,就會出現類似於「? ? ?」的亂碼問題。為什麼會這樣呢,造成這種現象的原因是tomcat對get和post兩種提交方式的處理方法不一樣造成的。

自從tomcat5.x開始,get和post方法提交的資訊,tomcat採用了不同的方式來處理編碼。對於post請求,tomcat使用request.setcharacterencoding方法所設定的編碼來處理,如果未設定,則使用預設的iso-8859-1編碼。因為request.setcharacterencoding(charset); 只對訊息體中的資料起作用,對於uri欄位中的引數不起作用,所以tomcat對於get請求並不會考慮使用request.setcharacterencoding方法設定的編碼,永遠使用iso-8859-1編碼。

解決的方式為手動進行編碼轉換:

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

解決以GET方式獲取中文時亂碼問題

request.setcharsetencoding utf 8 這個語句只對post形式的提交方式有效,而對get方式提交無效。在更改tomcat設定,如果想在之後的專案當中不再重新設定,而是一次設定長期使用的話,建議在tomcat伺服器之上設定,具體路徑如下 c apache tomcat 6....

get請求引數中文亂碼

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

get請求引數中文亂碼問題

對於get請求解決中文亂碼有兩種途徑一種是修改tomcat預設的編碼方式為 utf 8 在tomcat的server.xml裡把 修改為使用這種方式帶來的問題是在你本機上這麼做沒有問題,你無論怎麼去修改你tomcat上的配置都沒問題,但是測試環境和生產環境的伺服器不是輕易說改就能改的,特別是有些公司...