天天看點

JavaWeb項目的中文亂碼的原因以及Servlet中處理GET請求和POST請求編碼過濾器

一、亂碼原因

①傳輸方和接收方采用的編碼不一緻。傳輸方對參數采用的是utf-8編碼而接收方卻用gbk進行解析,當然是亂碼。

②tomcat伺服器預設采用的iso8859-1編碼得到參數值。雖然①中采用了同樣的編碼方式,但經過tomcat一處理,也會出現亂碼(get方式)

二、解決辦法

方法一 每次傳輸都手動設定編碼(get方式傳輸資料)

傳輸方

string name = urlencoder.encode("張三","utf-8");

string path = "http://localhost:8008/xyweb/xyservlet?name=" + name;

接收方

string name = new string(request.getparameter("name").getbytes("iso8859-1"),"utf-8");

若傳輸方預設采用utf-8編碼就沒有必要每次寫,但接收方每次都寫太煩,可考慮過濾器。

方法二(過濾器)

繼續閱讀