jsp页面用的是  contentType="text/html; charset=gb2312" 
mysql连接用的  DBURL = "jdbc:mysql://localhost:3306/hrsystem?user= &password= &" +
"useUnicode=true&characterEncoding=gb2312";
mysql安装时采用的是gb2312编码,在创建数据库 的时候我又加了ENGINE=MyISAM DEFAULT CHARSET=gb2312serlvet 用的   response.setCharacterEncoding("gb2312");
myeclipse编码  改成了GBK
还是有乱码我是不是还应该将 servlet中的 String em_visage = request.getParameter("em_visage");这种接收参数的语句再加上编码转换,用那个什么 String em_visage = new String((request.getParameter("em_visage").getBytes("ISO8859-1"),"GB2312"); 不过我怎么都感觉没这个必要了!!

解决方案 »

  1.   

    试一下:response.setContentType("text/html;charset=gbk");
      

  2.   

    response.setContentType("text/html");我已经单独加了,只是把它分成两句了而已!
      

  3.   

    request.setCharacterEncoding("gb2312");
    response.setContentType("text/html;charset=gb2312");这两个语句要在获取表单值之前设置。
      

  4.   

    mysql安装时就采用utf-8编码
    contentType="text/html; charset=utf-8"我都是这么做的没有乱码的问题!!!!!
      

  5.   

    如果了get传参数(url传递是get传递的)的话就要转换   
     String em_visage = new String((request.getParameter("em_visage").getBytes("ISO-8859-1"),"GB2312"); 
    post传递的话用response.setCharacterEncoding("gb2312"); 
    就可以 了能用post就用post
      

  6.   

    mysql安装时就采用utf-8编码
    contentType="text/html; charset=utf-8"如果已经安装好了,从数据库客户端查看一下其编码方式,重新设置修改,具体的修改:
    mysql> show variables like 'character_set_%';
    +--------------------------+----------------------------+
    | Variable_name          | Value                       |
    +--------------------------+----------------------------+
    | character_set_client    | utf8                      |
    | character_set_connection | utf8                      |
    | character_set_database | utf8                      |
    | character_set_filesystem | binary                   |
    | character_set_results     | utf8                      |
    | character_set_server    | utf8                      |
    | character_set_system    | utf8                      |
    | character_sets_dir        | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+查看如果不是utf8的可以如下修改:修改数据库的字符集
    mysql>use mydb
    mysql>alter database mydb character set utf-8;
    创建数据库指定数据库的字符集
    mysql>create database mydb character set utf-8;通过配置文件修改:
    修改/var/lib/mysql/mydb/db.opt
    default-character-set=latin1
    default-collation=latin1_swedish_ci

    default-character-set=utf8
    default-collation=utf8_general_ci
    重起MySQL:
    [root@bogon ~]# /etc/rc.d/init.d/mysql restart通过MySQL命令行修改:
    mysql> set character_set_client=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_connection=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_database=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_results=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_server=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_system=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_connection=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_database=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_server=utf8;
    Query OK, 0 rows affected (0.01 sec)
    查看:
    mysql> show variables like 'character_set_%';
    +--------------------------+----------------------------+
    | Variable_name          | Value                       |
    +--------------------------+----------------------------+
    | character_set_client    | utf8                      |
    | character_set_connection | utf8                      |
    | character_set_database | utf8                      |
    | character_set_filesystem | binary                   |
    | character_set_results     | utf8                      |
    | character_set_server    | utf8                      |
    | character_set_system    | utf8                      |
    | character_sets_dir        | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.03 sec)
    mysql> show variables like 'collation_%';
    +----------------------+-----------------+
    | Variable_name       | Value          |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database | utf8_general_ci |
    | collation_server    | utf8_general_ci |
    +----------------------+-----------------+
    3 rows in set (0.04 sec)
    这样就OK了。
      

  7.   

    不用这么麻烦,点击startup....选择advanced就可以看到一个Det Char Set就可以在这里改
      

  8.   

    查一下MYSQL数据库的字符集,可能是数据库问题。
      

  9.   

    //如果你的页面中用的是gb2312编码,那么你在
    //servlet中
    request.setCharacterEncoding("gb2312");
    //如果数据库用的UTF-8编号那么
    response.setCharacterEncoding("utf-8");//然后你可以System.out.println();检验一下到底是哪一步出现乱码!!
      

  10.   

    你查一下你jsp文件的编码格式!如果在eclipse中,选中文件右键查看属性!
      

  11.   

    web乱码
    http://blog.csdn.net/crazylaa/archive/2009/12/24/5066784.aspx
      

  12.   

    我也是这么做的,可是就是乱码啊,还说我的列的字符太长,晕啦,乱码真烦啊,以前用servlet的时候用的GB2312还可以,现在用框架之后为了国际化,真的难搞啊,高手指点下!
      

  13.   

    导致乱码问题会有很多原因
    除了综上所说的办法
    1你可以设置下 mysql安装目录下有个配置文件里面的 编码格式 文件名叫什么我忘了 google一下就可以找到
    2 如果你用的是tomcat 加上 URIencodeing=“UTF-8”
      

  14.   

    用过滤器呀package lgd;import java.io.IOException;
    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.UnavailableException;
    public class EncodingFilter implements Filter { 
       protected String encoding = null;    
       protected FilterConfig filterConfig = null; 
          public void destroy() {  
                this.encoding = null;    
                    this.filterConfig = null;  
                      }  
        public void doFilter(ServletRequest request, ServletResponse response,
             FilterChain chain)
             throws IOException, ServletException { 
       // Select and set (if needed) the character encoding to be used 
             String encoding = selectEncoding(request);   
                 if (encoding != null)        {     
                        request.setCharacterEncoding(encoding); 
                        response.setContentType("text/html;charset="+encoding); 
                               }
        // Pass control on to the next filter 
               chain.doFilter(request, response);  
                 }   
         public void init(FilterConfig filterConfig) throws ServletException {
         this.filterConfig = filterConfig;  
               this.encoding = filterConfig.getInitParameter("encoding");
                   }   
          protected String selectEncoding(ServletRequest request) { 
                 return (this.encoding);  
                   }
                 }
      

  15.   

    应该是url传递中文产生的乱码,获取数据后转换编码!
      

  16.   

    2种办法:
    (1)response.setContentType("text/html;charset=gbk");
    (2)过滤器:
    import java.io.IOException; 
    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.UnavailableException; 
    public class EncodingFilter implements Filter { 
      protected String encoding = null;    
      protected FilterConfig filterConfig = null; 
          public void destroy() {  
                this.encoding = null;    
                    this.filterConfig = null;  
                      }  
        public void doFilter(ServletRequest request, ServletResponse response, 
            FilterChain chain) 
            throws IOException, ServletException { 
      // Select and set (if needed) the character encoding to be used 
            String encoding = selectEncoding(request);  
                if (encoding != null)        {    
                        request.setCharacterEncoding(encoding); 
                        response.setContentType("text/html;charset="+encoding); 
                              } 
        // Pass control on to the next filter 
              chain.doFilter(request, response);  
                }  
        public void init(FilterConfig filterConfig) throws ServletException { 
        this.filterConfig = filterConfig;  
              this.encoding = filterConfig.getInitParameter("encoding"); 
                  }  
          protected String selectEncoding(ServletRequest request) { 
                return (this.encoding);  
                  } 
                }