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"); //可以转其他编码格式;