关于中文乱码的问题
# 具体遇到的问题
如果在校验管理员的过滤器中,把输出信息设置成中文,则返回给前台的数据乱码。
# 报错信息的截图
# 尝试过的解决思路和结果
所以 ,想到了在输出响应前,增加:
response.setContentType("text/html;charset=utf-8");
这样过滤器中的响应输出不会中文乱码了,但是之前的接口,如用户登录,显示签名的地方乱码了
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
在这里输入代码,可通过选择【代码语言】突出显示
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpSession session = request.getSession();
User user = (User) session.getAttribute(Constant.currentUser);
if(user==null){
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.setContentType("text/html;charset=utf-8");
PrintWriter out = new HttpServletResponseWrapper(response).getWriter();
/* response.setContentType("text/html;charset=utf-8");
response.getWriter().println("\"status\": 10006,\n" +
" \"msg\": \"请在登录后操作o\",\n" +
" \"data\": null");*/
out.write("{\n"
+ " \"status\": 10006,\n"
+ " \"msg\": \"请在登录后操作\",\n"
+ " \"data\": null\n"
+ "}");
out.flush();
out.close();
return;
}
44
收起
正在回答
2回答
同学你好,可尝试在application.properties中设置如下参数
spring.http.encoding.force=true spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true server.tomcat.uri-encoding=UTF-8
java工程师2020版
- 参与学习 人
- 提交作业 9400 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星