当传入参数中有PrintWriter/Writer时,类似于如下目标方法,响应页面就会出现中文乱码:
@RequestMapping("/Test")
public String ConMethod5(HttpServletRequest request, HttpServletResponse response,PrintWriter writer) {
return "RepPage";
}
查看响应头后发现,Content-Type里的编码改成了ISO-8859-1:
对比正常的响应页面,是UTF-8:
在Response中手动设置Content-Type也没有用
response.setContentType("text/html;charset=UTF-8");
解决方法:
去掉Wirter类型的参数,在方法中用Response获取Writer,使用之前手动修改编码
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println(xxx);
...