当传入参数中有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
);
...