Servlet中關於get方法中文亂碼解決辦法

2021-08-22 10:06:34 字數 1395 閱讀 3108

客戶端提交資料給服務端,如果資料中帶有中文的話,有可能會出現亂碼的情況,那麼可以參照 以下方法解決

如果是get方式

1,編碼轉換

get請求過來的資料,在url位址列上就已經經過編碼了,所以我們取到的就是亂碼。

tomcat收到了這批資料,getparameter 預設使用了iso-8859-1去解碼

直接在tomcat裡面做配置,以後get請求過來的資料永遠都是用utf-8編碼

2,可以在tomcat裡面做設定處理conf/server.xml加上urlencoding="utf-8"

如果時post 請求時

request.setcharacterencoding("utf-8");

設定傳進來的引數接收的編碼方式

這個說的時設定請求體裡面的文字編碼。get方式,用這行有用嗎?--->沒用

負責返回資料給客戶端。

以字元流的方式寫資料

以位元組流的方式寫資料

response.getoutputstream().write("hello..".getbytes());

//設定當前請求的狀態碼是

response.setstatus(sc);

//設定乙個頭

response.setheader(name, value);

//設定意昂應內容以及編碼

response.setcontenttype(type);

但是,經過實驗證明,可能是tomcat 9.0.5的新特性原因,get方法瀏覽器傳過來的資料在tomcate getparamete()中的編碼是utf-8,所以當用get方法請求在控制台顯示時,servlet中不需要再改變中文字元的編碼方式。

同時,在實際應用中絕大部分是使用的post方法來傳入引數,因此,對於get 傳入引數亂碼的解決方法了解即可。(ps:強迫症,過於較真)

servlet中post和get請求亂碼問題

在post請求當中我們是直接處理即可 為什麼post和get處理請求亂碼的方式不一樣 tomcat預設是使用iso 8859 1來處理引數。因為在dopost中我們可以使用 request.setcharacterencoding utf 8 對請求引數編碼,而不是預設的iso 8859 1,而在d...

servlet中get和post編碼問題

request.setcharacterencoding 是設定從request中取得的值或從資料庫中取出的值 response.setcontenttype text xml charset gbk 是設定頁面中為中文編碼 前者是設定動態文字 引數,資料庫 後者設定頁面靜態文字 response....

關於Form中的post方法和get方法

今天在學習asp.ne時,程式在執行時老是發生錯誤 system.nullreferenceexception 未將物件引用設定到物件的例項。指向 string strusername this.request.form.get txtusername tostring 後來經過我的努力解決的問題,...