Servlet亂碼分爲request亂碼和response亂碼;
在網上很有效的解決方法是添加:
response.setCharacterEncoding("UTF-8");
解決不了,後來又搜到一條解決方法是:
respnse.setHeader("content-type","text/html;charset=UTF-8");
兩句都填上,後來終於解決了這個問題;
注意:
response.setContentType("text/html;charset=UTF-8"); 目的是爲了控制瀏覽器的行爲,即控制瀏覽器用UTF-8進行解碼;
response.setCharacterEncoding("UTF-8"); 的目的是用於response.getWriter()輸出的字符流的亂碼問題,這句話的意思是爲了將response對象中的數據以UTF-8解碼後發向瀏覽器;
二、request亂碼問題
request請求分爲post和get,對於不同的請求方式有不同的解決亂碼的方案;
request.setCharacterEing("UTF-8"); // 只對post有效;
String value = new String(request.getParameter("name").getBytes(”ISO-8859-1“)."UTF-8"); //可以轉其他編碼格式;