zgsmile 2015-03-11 06:17 采纳率: 0%
浏览 1739

filter解决字符编码失效

//web.xml中配置filter
//filter实现
//action中查看filter效果
我在filter中配置的编码类型是ISO-8859-1,但是查看时总是UTF-8

  • 写回答

1条回答 默认 最新

  • KK_PLC 2015-03-12 12:14
    关注


    CharacterEncodingFilter
    cn.jbit.housestruts.filter.CharacterEncodingFilter

    encoding
    GBK



    CharacterEncodingFilter
    /*

    import javax.servlet.FilterConfig;
    

    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;

    public class CharacterEncodingFilter implements Filter{

      private FilterConfig filterConfig;   
    private String encoding = null;   
    
    public void init(FilterConfig filterConfig) throws ServletException {   
        this.filterConfig = filterConfig;   
    }     
    /**
     * 过滤器
     */
    
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException,   
            ServletException {   
        try {   
            if (encoding == null) {   
                encoding = filterConfig.getInitParameter("encoding");   
            }   
        } catch (Exception iox) {   
            iox.printStackTrace();   
        }   
        request.setCharacterEncoding(encoding);   
        response.setCharacterEncoding(encoding);   
        HttpServletRequest req = (HttpServletRequest) request;   
    
        // get请求时,重新编码   
        if ("GET".equals(req.getMethod())) {   
            Enumeration names = request.getParameterNames();   
            while (names.hasMoreElements()) {   
                String name = (String) names.nextElement();   
                String[] values = request.getParameterValues(name);   
                for (int i = 0; i < values.length; i++) {   
                    values[i] = new String(values[i].getBytes("ISO-8859-1"), encoding);   
                }   
            }   
        }   
        filterChain.doFilter(request, response);   
    }   
    
    public void destroy() {   
        filterConfig = null;   
        encoding = null;   
    }   
    

    }

    这次你再试试,应该不会出问题了...

    评论

报告相同问题?

悬赏问题

  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的