POST中文乱码解决方案-阿里云开发者社区

开发者社区> 泳泳啊泳泳> 正文

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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案
基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案           两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求了百度和大神们,都没有解决这个问题,百度上一堆解释是对编译器进行设置之类的,结果没有一个有效果,暑假学习了用Dos来开发Java程序,输入...
1219 0
Gedit中文乱码解决
Gedit中文乱码 出自Ubuntu中文 缺省配置下,用 Ubuntu 的文本编辑器(gedit)打开 GB18030/GBK/GB2312 等类型的中文编码文本文件时,将会出现乱码。 出现这种情况的原因是,gedit 使用一个编码匹配列表,只有在这个列表中的编码才会进行匹配,不在这个列表中的编码将显示为乱码。
1647 0
Intellij IDEA 乱码解决究极方案和一些常见问题
Intellij IDEA 乱码解决究极方案和一些常见问题
46 0
ApiPost(中文版postman)如何发送一个随机数或者时间戳?
当我们的请求参数是一个时间戳或者随机数时,我们可以用ApiPost的内建变量
2237 0
GET乱码以及POST乱码的解决方法
GET乱码以及POST乱码的解决方法 作者:东坡下载  来源:uzzf  发布时间:2010-10-14 11:40:01  点击: 一、GET乱码的解决方法   在tomcat的server.
655 0
DbVisualizer 8 解决中文乱码问题
原文http://blog.chinaunix.net/uid-26640696-id-3128544.html    在SQL Commander中,sql语句中如果有中文,显示是‘口口口’。 解决办法如下: 在Tools->tool Properties->General->Appearance->Fonts在Font Settings下 找到SQL Editor/Text Editor选择PMingLiU, 同时找到Grid也选择PMingLiU就可以了。
1025 0
JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
一、乱码原因 ①传输方和接收方采用的编码不一致。传输方对参数采用的是UTF-8编码而接收方却用GBK进行解析,当然是乱码。 ②Tomcat服务器默认采用的ISO8859-1编码得到参数值。虽然①中采用了同样的编码方式,但经过tomcat一处理,也会出现乱码(GET方式)   二、解决办法 方法一 每次传输都手动设置编码(GET方式传输数据) 传输方 String name =
1282 0
326
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载