POST中文乱码解决方案

简介:

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     @Override
14     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     @Override
24     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  <filter>
 2         <filter-name>characterEncodingFilter</filter-name>
 3         <filter-class>training.model.filter.CharacterEncodingFilter</filter-class>
 4         <init-param>
 5             <param-name>characterEncoding</param-name>
 6             <param-value>UTF-8</param-value>
 7         </init-param>
 8         <init-param>
 9             <param-name>enabled</param-name>
10             <param-value>true</param-value>
11         </init-param>
12     </filter>
13     <filter-mapping>
14         <filter-name>characterEncodingFilter</filter-name>
15         <url-pattern>/*</url-pattern>
16     </filter-mapping>
复制代码

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

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

复制代码
 1 <filter>  
 2     <filter-name>CharacterEncodingFilter</filter-name>  
 3     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
 4     <init-param>  
 5         <param-name>encoding</param-name>  
 6         <param-value>utf-8</param-value>  
 7     </init-param>  
 8 </filter>  
 9 <filter-mapping>  
10     <filter-name>CharacterEncodingFilter</filter-name>  
11     <url-pattern>/*</url-pattern>  
12 </filter-mapping>  
复制代码

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


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

相关文章
|
机器学习/深度学习 缓存 Java
javax异常: javax.imageio.IIOException: Can't create output stream解决方法
javax异常: javax.imageio.IIOException: Can't create output stream解决方法
|
API Apache C#
推荐2款开源、美观的WinForm UI控件库
推荐2款开源、美观的WinForm UI控件库
1202 1
|
存储 算法 Java
java制作海报六:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题
这篇文章是关于如何在Java中使用Graphics2D的RenderingHints方法来提高海报制作的图像质量和文字清晰度,包括抗锯齿和解决文字不清晰问题的技术详解。
623 0
java制作海报六:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题
|
安全 Java 测试技术
🌟 Java 零基础 | 详解 instanceof 运算符
【10月更文挑战第1天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
459 1
|
IDE 前端开发 Java
在 Visual Studio Code 中使用 CodeFuse
Visual Studio Code作为一款广受程序员欢迎的代码编辑器,在前端开发和各类脚本语言开发中占据主流地位,CodeFuse智能研发助手就专门为VS Code研发了插件,只要安装插件就可以使用CodeFuse提供的各种功能,下面我们看看如何在VS Code中使用CodeFuse插件呢?
962 0
|
移动开发 安全 Java
Spring Security 配置多WebSecurityConfigurerAdapter
Spring Security 配置多WebSecurityConfigurerAdapter
2839 0
|
Java
Java面向对象编程,如何定义一个接口并在类中实现它?
Java面向对象编程,如何定义一个接口并在类中实现它?
387 1
|
Docker 容器
docker安装elasticsearch
docker安装elasticsearch
343 0
|
JavaScript
Element UI报错:Unknown custom element: <el-menu>
Element UI报错:Unknown custom element: <el-menu>
328 0
|
前端开发
element-ui图标偶现乱码问题的原因和修复方法
之前很老的一个 webpack3 前端项目,用 vue-cli5 重构了一下,根据 vue-cli 文档安装的 sass 版本 ^1.32.7,sass-loader 版本 ^12.0.0,各种自测感觉没问题了就部署到线上了