为了账号安全,请及时绑定邮箱和手机立即绑定

SpringMVC自定义拦截器拦截请求后返回中文时乱码

SpringMVC自定义拦截器拦截请求后返回中文时乱码

哆啦的时光机 2019-03-20 14:15:54
拦截器如下:public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {    PrintWriter writer=response.getWriter();    response.setContentType("application/json;charset=UTF-8");    response.setCharacterEncoding("UTF-8");    writer.println("{\"language\":\"简体中文\"}");    writer.flush();    writer.close();    return false;}上面返回时,中文只显示几个问号。Controller里返回的中文是不会乱码的。什么回事呢?
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

原来是顺序问题:

response.setContentType("application/json;charset=UTF-8");

需要在

PrintWriter writer=response.getWriter();

之前。



BTW,在顺序不对时出现的情况:
setContentType的确是生效了,但是只生效了一半,头部含有:

Content-Type:application/json;charset=ISO-8859-1

返回的是json格式这个生效了,charset却没有生效。
没有setContentType的话是没有Content-Type这个响应头信息的。


查看完整回答
反对 回复 2019-04-25
  • 1 回答
  • 0 关注
  • 566 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号