public class CNFilter implements Filter { public void destroy() {
// TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

         request.setCharacterEncoding("gbk");
         response.setCharacterEncoding("gbk");
         chain.doFilter(request, response);
} public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub }

解决方案 »

  1.   

    在web.xml中的配置为:
    <filter>
    <filter-name>filter</filter-name>
    <filter-class>包名.CNFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>filter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
      

  2.   

    过滤器实现统一管理乱码
    或者
    String str=new String("乱码").getBytes("iso-8859-1"),"gbk";
      

  3.   

    关于乱码这个问题,真是.....
    我平时的处理办法:编码统一,随机应变。过滤器就一定万能吗?未必!
    使用过滤器只是解决乱码的问题之一,不要一遇到乱码就首先想到用过滤器,首先要做的就是弄明白,乱码可能是怎样产生的,属于什么类型的乱码,当你遇到的乱码问题过滤器屡屡解决不了,你就不再说使用过滤器了。
    楼上的那位兄弟说的是JSP页面中常用的处理表单选项的乱码的。不过应该是这样的吧:
    String str=new String((request.getParameter("pname")).getBytes("iso-8859-1"),"gbk");URL乱码过滤器也已解决吗?使用第三方组件产生的乱码过滤器可以解决吗?答案是否定的。
    当然我也不是说过滤器没用,看看这两句就可以看出:public void doFilter(ServletRequest request, ServletResponse response, 
    FilterChain chain) throws IOException, ServletException { 
    ....
    ....
    chain.doFilter(request, response);