解决方案 »

  1.   

    提交的方式有两种,get和post,它们两处理乱码的方式也不同,
    get:reqest.setcharactorencoding﹉和response.setcontenttype同时写就可以了,post的话应该是前面说的后一个就可以了﹉大概记得是这样,希望能帮到楼主
      

  2.   

    Html页面编码没有声明:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      

  3.   

     /**
         * 中文乱码过滤处理
         */
        public void doFilter(ServletRequest svlrequest, ServletResponse svlresponse,
               FilterChain chain) throws IOException, ServletException
        {
           //将Servlet请求与响应对象转换成HttpServlet请求与响应对象
           HttpServletRequest request=(HttpServletRequest)svlrequest;
           HttpServletResponse response=(HttpServletResponse)svlresponse;
          
           //获得请求的方式(1.post or 2.get),根据不同请求方式进行不同处理
           String method = request.getMethod();
           //1.以post方式提交的请求,直接设置编码为UTF-8
           if(method.equalsIgnoreCase("post"))
           {
               try
               {
                  request.setCharacterEncoding("UTF-8");
               } catch (UnsupportedEncodingException e)
               {
                  e.printStackTrace();
               }
           }
           //2.以get方式提交的请求
           else
           {
               //取出客户提交的参数集
               Enumeration<String> paramNames = request.getParameterNames();
               //遍历参数集取出每个参数的名称及值
               while(paramNames.hasMoreElements())
               {
                  String name = paramNames.nextElement();//取出参数名称
                  String values[] = request.getParameterValues(name);//根据参数名称取出其值
                  //如果参数值集不为空
                  if(values != null)
                  {
                      //如果参数值集中只有一个值
                      if(values.length == 1)
                      {
                         try
                         {
                             //调用toUTF(values[0])函数,(values[0]即第一个参数值)方法转换参数值的字元编码                        
                             String vlustr=toUTF(values[0]);
                             //并将该值以属性的形式藏在request
                             request.setAttribute(name, vlustr);
                         } catch (UnsupportedEncodingException e)
                         {
                             e.printStackTrace();
                         }
                      }
                      //如果参数值集中有多个值
                      else
                      {
                         //遍历参数值集
                         for(int i=0;i<values.length;i++)
                         {
                             try
                             {
                                //回圈依次将每个值调用toUTF(values[i])方法转换参数值的字元编码
                                String vlustr=toUTF(values[i]);
                                values[i] = vlustr;
                             } catch (UnsupportedEncodingException e)
                             {
                                e.printStackTrace();
                             }
                         }
                         //将该值以属性的形式藏在request
                         request.setAttribute(name, values);
                      }
                  }
               }
     
           }
            //设置响应方式和支持中文的字元集
           response.setContentType("text/html;charset=UTF-8"); 
     
           //继续执行下一个filter,无一下个filter则执行请求
           chain.doFilter(request, response);
        }
      

  4.   

    http://blog.csdn.net/xuefeng0707/article/details/22897063
      

  5.   

    你可以分几部看看,
    首先看看传到后台是不是乱码
    java中文乱码跟很多情况有关系,如虚拟机的运行编码Dfile.encoding参数
    如使用IDE显示的Console参数
      

  6.   

    过滤器对get请求方式不启作用的  .使用String name=new String(request.getParameter("text").getBytes("ISO-8859-1"),"UTF-8");转化编码