使用过滤器解决中文编码问题
2014-04-02 00:00
351 查看
摘要: 使用过滤器解决中文编码问题
package com.techsboy.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.techsboy.wraper.MyHttpServletRequest; public class EncodingFilter implements Filter { private FilterConfig config; @Override public void init(FilterConfig filterConfig) throws ServletException { config = filterConfig; } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; //过滤前处理 String encoding = config.getInitParameter("encoding"); request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); response.setContentType("text/html;charset=" + encoding); MyHttpServletRequest myRequest = new MyHttpServletRequest(request); //放行 chain.doFilter(myRequest, response); } @Override public void destroy() { } }
package com.techsboy.wraper; import java.io.UnsupportedEncodingException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; /** * * @author Speeddsy * * 通过继承HttpServletRequestWrapper包装类覆盖需要改写的方法getParameter, * 如果获取参数是通过get方式传递过来的,处理中文编码问题 */ public class MyHttpServletRequest extends HttpServletRequestWrapper { public MyHttpServletRequest(HttpServletRequest request) { super(request); } @Override public String getParameter(String name) { String value = super.getParameter(name); if(value!=null){ String method = super.getMethod(); if ("get".equalsIgnoreCase(method)) { try { // 处理get方式传递的参数默认使用ISO-8859-1编码,因此可通过下一行代码解决中文乱码问题 return new String(value.getBytes("ISO-8859-1"), super.getCharacterEncoding()); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } } } return value; } }
相关文章推荐
- 解决页面中文的乱码问题,使用过滤器为所有页面配置编码格式,解决大部分的中文乱码问题
- python使用requests爬取网页,遇到中文出现乱码的编码问题及解决
- 解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)——ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换
- 前台页面使用utf-8编码,url中包含中文参数时后台获取参数乱码问题解决
- JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码
- Mac电脑使用:解决Mac上“文本编码Unicode(UTF-8)不适用”、文本编码“中文 (GB 18030)不适用“的问题
- Post与Get提交使用过滤器解决中文乱码问题
- WEB应用使用过滤器解决编码乱码问题
- Tomcat 5/6 GBK 编码下完美解决中文表单问题的过滤器
- 使用过滤器Filter解决Java系统中中文乱码的问题
- 分享一个 jsPDF的简单使用以及中文编码问题的解决
- JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码
- 解决PL/SQL 在使用客户端情况下的中文编码问题
- Tomcat 5/6 GBK 编码下完美解决中文表单问题的过滤器
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
- Tomcat 5/6 GBK 编码下完美解决中文表单问题的过滤器
- struts使用过滤器解决中文乱码问题
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
- 中文乱码问题 ? 原因:JSP中默认使用iso-8859-1字符编码方式,不支持中文 ? 常见的支持中文的编码方式:gb2312(常用简体汉字)、gbk(简体和繁体汉字)、utf-8 ? 解决中文乱码
- 过滤器解决中文编码问题