一、亂碼原因
①傳輸方和接收方采用的編碼不一緻。傳輸方對參數采用的是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編碼就沒有必要每次寫,但接收方每次都寫太煩,可考慮過濾器。
方法二(過濾器)