这是 你的eclipse里面的设置的不对按ALT+Enter  把里面的ResourceText file encoding   有个编码,把编码改成gbk

解决方案 »

  1.   

    你是要得到上个页面传来的参数还是什么?
    如果是参数的话,可以用new String(request.getParameter("test").getBytes("ISO-8859-1"),"GB2312");
      

  2.   

    我不是在eclipse开发的,用的外接服务器,editPlus中编辑的!
    2楼的方法不适合传递较多的值啊!
      

  3.   

    方法很多的,写过滤链,拦截器,还有就是在安装目录加参数C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\server.xml的
    <Connector port="8080" protocol="HTTP/1.1" 
                   maxThreads="150" connectionTimeout="20000" 
                   redirectPort="8443" />里面加个URIEncoding="GBK"
      

  4.   

    刚刚又测试了,4楼的方法只适合“get”的提交方式,可是用“post”方式又是乱码啊~!!!!!!
      

  5.   

    package filterEncoding;import java.io.IOException;
    import java.util.Enumeration;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;public class FilterEncoding implements Filter{

    protected   String   encoding   =   null;   

        protected   FilterConfig   filterConfig  = null;   //配置信息
        
        protected   boolean   ignore   =   true; // 是否编码  
      
       /**
        * 初始化配置
        */
        public void  init(FilterConfig   filterConfig)   throws   ServletException   {   
            
            this.filterConfig   =   filterConfig; //配置信息  
            
            this.encoding   =   filterConfig.getInitParameter("encoding");//获的GBK编码   
            
            String   value   =   filterConfig.getInitParameter("ignore");   //是否为真
            
            if   (value   ==   null)   { //等于空 也为真   
            
                    this.ignore   =   true;   
                    
            }   else   if   (value.equalsIgnoreCase("true"))   {//等于true 也为真   
            
                    this.ignore   =   true;   
                    
            }   else   if   (value.equalsIgnoreCase("yes"))   {   //等于YES 也为真 
            
                    this.ignore   =   true;   
                    
            }   else   {   
            
                    this.ignore   =   false;   //否则为假 
                    
            }   
              
    }   
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    // TODO 自动生成方法存根
         // 判断编码为真或者编码为空 为空调用 selectEncoding()方法 返回 GBK编码
        
    if   (ignore ||   (request.getCharacterEncoding()   ==   null))   {  

                    String   encoding   =   selectEncoding(request);   
                    
                    if   (encoding   !=   null)   {  //  否则设置为 GBK编码 
                    
                     response.setCharacterEncoding(encoding);
                        request.setCharacterEncoding(encoding);   
                            
                    }   
            }

    Enumeration<String> enumeration = ((HttpServletRequest)request).getParameterNames();

    if(((HttpServletRequest)request).getMethod().equalsIgnoreCase("get")){

    while(enumeration.hasMoreElements()){

    String name=enumeration.nextElement().toString();

    //获得他的编码方式 改为GBK  默认的编码都为ISO-8859-1

    String ok=new String(request.getParameter(name)
    .getBytes("iso-8859-1"),"GBK");
    System.out.println(name+"-----"+ok);
    request.setAttribute(name,ok);

    }

    }

            chain.doFilter(request,   response);     
    }

        /**
         * @param request 该方法设置 请求的编码为  GBK
         * @return 返回编码后 字符 ( GBK )
         */
        protected   String   selectEncoding(ServletRequest   request)   {   
                return   (this.encoding);   
        }   
        public   void   destroy()   {   
                this.encoding   =   null;     //释放资源
                this.filterConfig   =   null;   
        }   
    }
      

  6.   

         <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
       
        <init-param>
        
          <param-name>singleSession</param-name>
          
          <param-value>true</param-value>
          
        </init-param>
        
      </filter>
      <filter-mapping>
        <filter-name>opensession</filter-name>
        <url-pattern>*.do</url-pattern>
      </filter-mapping>
    这个是过滤器web的配置文件
    其实方法很多的