亂碼的問題是由於 編碼字元集合,解碼字符集不一致造成的。
各個伺服器在處理web請求中的中文,方式是不同的。如 tomcat在處理請求時預設使用的字符集是 iso-8859-1。(別的伺服器也有它們的字符集),我們可以通過改變配置檔案中的引數更改伺服器使用的字符集如。tomcat 的server.xml中可以改為
在它的連線埠設定中寫入 uriencoding要使用的值。表示設定伺服器的預設設定字符集。(但是這通常不讓使用,因為乙個伺服器上可有多個專案,所使用的字符集也不一定一致)。
所以通常使用如下方法:
在獲得請求中的引數值後,先使用伺服器預設使用的字符集,將字串轉為byte。再按照使用者的需要用指定字符集組成新的字串.
string dname =request.getparameter(「dname」);
//對應get方式傳遞過來的引數解決亂碼問題: 先對接收到的值使用iso-8859-1轉為 byte,再將位元組陣列按照utf-8組裝成string
byte arr = dname.getbytes(「iso-8859-1」);//get post都行
//再將arr按照utf-8重新組成 string
dname = new string(arr,「utf-8」);
以上的方法 post,get方式的請求都可以使用的。
除此之外post方式由於是通過http協議(底層)來傳遞引數,還可以在接收引數之前設定請求中編碼使用的字符集。注意該方法只對post傳遞有效,因為get一定是要通過位址列來傳遞資訊,必須使用伺服器指定的字符集編碼。
get方式和post方式的區別
一 get方式 請求資訊會顯示在位址列上 當請求資訊過大時會報錯 post方式 不會在位址列顯示請求資訊 二 檔案上傳操作一定是post post方式和get方式的設定操作 show.jsp 設定編碼 request.setcharacterencoding utf 8 string name re...
get和post請求方式
get和post兩種請求方式的比較 1 給伺服器傳輸資料的方式 get 通過 字串。post 通過data 2 傳輸資料的大小 get 字串最多 255位元組。post 使用nsdata 容量超過1g 3 安全性 get 所有傳輸給伺服器的資料,顯示在 類似於密碼的明 輸入,直接可見。post 資料...
get和post請求方式
1.get是從伺服器上獲取資料,post是向伺服器傳送資料。2.get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個字段一一對應,在url中可以看到。post是通過http post機制,將表單內各個字段與其內容放置在html header內一起傳送到action屬性所...