如何解決POST和GET方式的中文亂碼問題

2021-08-18 09:19:37 字數 1470 閱讀 1125

對於post請求:

一:確保表單所在的頁面按照指定的字符集開啟

★在html頁面中使用meta標記可以確保瀏覽器按照指定的字符集進行解碼頁面,

並限定表單提交時的資料編碼方式

::在伺服器端需要在呼叫getparameter()方法讀取引數之前,告訴瀏覽器如

何解碼,使用如下**即可完成該設定:

:request.setcharacterencoding("utf-8");

★注意該方法一定要要放在所有request.getparameter()方法之前。

★這種方式只針對post請求有效。

二:也可以使用轉碼:string username = request.getparameter("username");

username = new string(username.getbytes("iso-8859-1"),"utf-8");

對於get請求:

一:確保表單所在的頁面按照指定的字符集開啟

★在html頁面中使用meta標記可以確保瀏覽器按照指定的字符集進行解碼頁面,

並限定表單提交時的資料編碼方式

::完成iso-8859-1到utf-8格式的轉換

string username = request.getparameter("username");

username = new string(username.getbytes("iso-8859-1"),"utf-8");

★由於get方式提交的任何資料在伺服器端一定會以iso-8859-1的方式進行解碼,

所以伺服器端可以先按iso-8859-1的方式獲取位元組陣列,在將該陣列轉變成

utf-8對應的字串形式

注意:對於get請求而言

★可以在tomcat伺服器的配置檔案進行修改,這樣就不用每次都對引數進行進製

轉換。在這裡需要修改tomcat的conf目錄下的server.xml配置檔案。修改方法

是在port="8080"後面新增uri編碼設定uriencoding="utf-8"即可。如圖所示:

★但是如果用了這種方式,如果再對引數進行new string轉換就會出錯

★這種方式也是只爭對get請求方式有效,對於post還是得需要用

:request.setcharacterencoding("utf-8");或者new string轉換。

get方式和post方式的區別

一 get方式 請求資訊會顯示在位址列上 當請求資訊過大時會報錯 post方式 不會在位址列顯示請求資訊 二 檔案上傳操作一定是post post方式和get方式的設定操作 show.jsp 設定編碼 request.setcharacterencoding utf 8 string name re...

解決POST和GET方式的中文亂碼問題

如果表單中含有中文,採用get或者post提交請求時,getparameter 方法接收到的引數值亂碼。1 亂碼產生的原因 請求引數通過瀏覽器傳送給tomcat伺服器,瀏覽器傳送編碼,但是tomcat預設採用iso 8859 1編碼進行處理,因此利用getparamenter 取出是亂碼。2 pos...

get和post請求方式

get和post兩種請求方式的比較 1 給伺服器傳輸資料的方式 get 通過 字串。post 通過data 2 傳輸資料的大小 get 字串最多 255位元組。post 使用nsdata 容量超過1g 3 安全性 get 所有傳輸給伺服器的資料,顯示在 類似於密碼的明 輸入,直接可見。post 資料...