博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POST中文乱码解决方案
阅读量:6818 次
发布时间:2019-06-26

本文共 2443 字,大约阅读时间需要 8 分钟。

POST中文乱码解决方案

以前,我都是自己编写一个filter,来实现编码,代码如下:

1 public class CharacterEncodingFilter implements Filter { 2  3     private final static Logger log= LoggerFactory.getLogger(CharacterEncodingFilter.class); 4  5     private String characterEncoding; //编码方式配置在web.xml文件中 6     private boolean enabled;   //是否启用此Filter,配置在web.xml中 7  8     @Override 9     public void destroy() {10         characterEncoding = null;11     }12 13     @Override14     public void doFilter(ServletRequest request, ServletResponse response,15                          FilterChain chain) throws IOException, ServletException {16         if (enabled || characterEncoding != null) {17             request.setCharacterEncoding(characterEncoding);18             response.setCharacterEncoding(characterEncoding);19         }20         chain.doFilter(request, response);21     }22 23     @Override24     public void init(FilterConfig config) throws ServletException {25         characterEncoding = config.getInitParameter("characterEncoding");26         enabled = "true".equalsIgnoreCase(config.getInitParameter("enabled").trim());27     }28 }

然后自己在web.xml文件中做如下配置

1  
2
characterEncodingFilter
3
training.model.filter.CharacterEncodingFilter
4
5
characterEncoding
6
UTF-8
7
8
9
enabled
10
true
11
12
13
14
characterEncodingFilter
15
/*
16

其实我们可以不必这么麻烦,重复造轮子。

spring Web MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题,具体配置如下:

1 
2
CharacterEncodingFilter
3
org.springframework.web.filter.CharacterEncodingFilter
4
5
encoding
6
utf-8
7
8
9
10
CharacterEncodingFilter
11
/*
12

  以后我们项目及所有页面的编码均为UTF-8。

==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/12/26/2833921.html,如需转载请自行联系原作者
你可能感兴趣的文章