很多时候,我们以为配置了CharacterEncodingFilter就能解决乱码问题,实际上不是的,
我们可以观察其doFilterInternal方法
protected void doFilterInternal(
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) {
request.setCharacterEncoding(this.encoding);
if (this.forceEncoding) {
//这里只设置了编码字符
response.setCharacterEncoding(this.encoding);
}
}
filterChain.doFilter(request, response);
}
响应的话还需要设置内容类型,比如:
response.setContentType(MediaType.TEXT_HTML);