SpringMVC中@ResponseBody注解返回json中文乱码问题
网上搜索到n中解决的办法,大体分为两类:
在注解中添加参数:
这种方法网上的各种方法我是没有实验通过自己解析:
可以在controller类的每一个方法传入一个httpservletResponse的response参数,response的中格式设为utf-8,这个也是可以的,没有任何问题,但是这种解决途径,每个函数都需要添加一个多余的参数,有些麻烦。因此可以自己定义一个工具类,获取一个全局的response参数来调用:
public static void wirteResult(String result){
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
// response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
out.print(result);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(out!=null){
out.close();
}
}
}