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();
}
}
}
本文介绍了解决SpringMVC框架中使用@ResponseBody注解返回JSON数据时出现的中文乱码问题。提供了一种通过自定义工具类统一设置字符编码的方法,避免了每个函数都需要重复添加设置。
2032

被折叠的 条评论
为什么被折叠?



