解決方式1(若亂碼參數(shù)多,就比較低效)
瀏覽器默認(rèn)編碼為ISO-8859-1,后端Servlet接收請求參數(shù),按照ISO-8859-1進(jìn)行解碼,得到二進(jìn)制流,然后再用UTF-8編碼。
示例代碼:
// 獲得請求參數(shù) String queryString = request.getQueryString(); // 按照ISO-8859-1方式解碼 byte[] bytes = queryString.getBytes("ISO-8859-1"); // 按照UTF-8編碼 String param = new String(bytes,"UTF-8");
解決方式2(此種方式只支持get方式請求)
修改服務(wù)器(tomcat)配置:在server.xml中,默認(rèn)為ISO-8859-1(沒有顯示出來),我們可以添加上UTF-8
解決方式3(此種方式只支持post方式請求)
在servlet直接設(shè)置請求參數(shù)編碼–推薦
//設(shè)置請求參數(shù)編碼 request.setCharacterEncoding("UTF-8");
響應(yīng)亂碼–響應(yīng)
// 設(shè)置MIME類型 response.setContentType("text/html"); // 設(shè)置編碼 response.setCharacterEncoding("UTF-8"); //設(shè)置編碼(簡寫) response.setContentType("text/html;charset=utf-8");