SpringMVC中目标方法传入参数为PrintWiter/Writer时,响应页面出现乱码

当传入参数中有PrintWriter/Writer时,类似于如下目标方法,响应页面就会出现中文乱码:

@RequestMapping("/Test")
public String ConMethod5(HttpServletRequest request, HttpServletResponse response,PrintWriter writer) {
    return "RepPage";
}

查看响应头后发现,Content-Type里的编码改成了ISO-8859-1:
SpringMVC中目标方法传入参数为PrintWiter/Writer时,响应页面出现乱码_第1张图片
对比正常的响应页面,是UTF-8:
SpringMVC中目标方法传入参数为PrintWiter/Writer时,响应页面出现乱码_第2张图片在Response中手动设置Content-Type也没有用

response.setContentType("text/html;charset=UTF-8");

解决方法:
去掉Wirter类型的参数,在方法中用Response获取Writer,使用之前手动修改编码

    response.setContentType("text/html;charset=UTF-8");
    response.getWriter().println(xxx);
    ...

你可能感兴趣的:(Java,java,乱码,servlet)