建议设置filter修正request response时的编码
页面编码
编辑器编码
db编码都要统一的

解决方案 »

  1.   

    首先你看看你这个页面文件本身是什么编码???再有看看TOMCAT里的SERVER.XML中加上字符集了吗??还有,你看看你的JAVA类里取出来是什么值, 是不是乱码???
      

  2.   

    还有这里,我上面的form是用的post方法,他怎么不直接在post方法里面处理,又要让get来处理呢?
    这个只是为了提高程序的健壮性。 post ,get 处理其实都是一样的。 private static final String COMTENT_TYPE = "text/html;charset=gb2312";
    response.setCharacterEncoding("GBK");还有你的页面的 <%@ page %> 编码要统一  
    都用"GBK" 试试 把。。
      

  3.   

    request response处理不了的用String类修改编码格式
      

  4.   

    除了页面编码统一 
    servlet中三句 按下顺序试试response.setCharacterEncoding("UTF-8");
    PrintWriter out = response.getWriter();
    response.setContentType("text/html;charset=UTF-8");
      

  5.   

    我在网上看到有人按下面做法成功了:request.setCharacterEncoding("UTF-8");      
    response.setContentType(CONTENT_TYPE);      
    PrintWriter out=response.getWriter();   希望对楼主有用。
      

  6.   

    首先,在控制台打印你是否获取了正确的参数. 例如:System.out.println(Username );
    如果获取的参数正确,那就必须设置
    response.setContentType(COMTENT_TYPE);
    response.setCharacterEncoding("GBK");
      

  7.   

    设置过滤器把。
    1、到你Tomcat 5.0\webapps\servlets-examples\WEB-INF\classes\filters下找到SetCharacterEncodingFilter.java这个文件。
    2、把SetCharacterEncodingFilter.java放到你的工程代码中。
    3、设置web.xml
       <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>你的包.SetCharacterEncodingFilter</filter-class>
        <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
          <param-name>ignore</param-name>
          <param-value>true</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <servlet-name>action</servlet-name>
      </filter-mapping>
      

  8.   

    也可以这样:String txtName = new String(request.getParameter("txtname").getBytes("ISO-8859-1"), "GB2312");可以专门写一个字符串处理的类来实现,不过这样确实有点麻烦,每次遇到中文的时候都要使用这个类,最好的方法就是上面那位仁兄,用Filter哈!