解決方式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");
更多java知識請關注java基礎教學欄位。
以上是java處理亂碼的幾種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!