解決方式1(若亂碼參數多,就比較低效)
瀏覽器默認編碼為ISO-8859-1,后端Servlet接收請求參數,按照ISO-8859-1進行解碼,得到二進制流,然后再用UTF-8編碼。
示例代碼:
// 獲得請求參數 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方式請求)
修改服務器(tomcat)配置:在server.xml中,默認為ISO-8859-1(沒有顯示出來),我們可以添加上UTF-8
解決方式3(此種方式只支持post方式請求)
在servlet直接設置請求參數編碼–推薦
//設置請求參數編碼 request.setCharacterEncoding("UTF-8");
響應亂碼–響應
// 設置MIME類型 response.setContentType("text/html"); // 設置編碼 response.setCharacterEncoding("UTF-8"); //設置編碼(簡寫) response.setContentType("text/html;charset=utf-8");