my.ini里[client]和[mysqld]下增加 default-character-set=utf8
执行 show variables like 'character_set_%'; 
+--------------------------+-----------------------------------+
| Variable_name            | Value                             |
+--------------------------+-----------------------------------+
| character_set_client     | utf8                              |
| character_set_connection | utf8                              |
| character_set_database   | latin1                            |
| character_set_filesystem | binary                            |
| character_set_results    | utf8                              |
| character_set_server     | latin1                            |
| character_set_system     | utf8                              |
| character_sets_dir       | E:\mysql\mysql5.1\share\charsets\ |
+--------------------------+-----------------------------------+java端设置 conn.setCharacterEncoding("utf-8");
页面使用utf-8编码现在select出来的结果中的中文还是乱码
问题出现在哪里,怎么解决。

解决方案 »

  1.   

    连接mysql数据库的url加上 [  ?useUnicode=true&characterEncoding=UTF-8 ]保证插入的数据是utf-8类型的数据,如果还有错,看一下,你连接mysql数据库的时候编码选择可正确,一般是没有问题的!
      

  2.   

    我用mysql的时候也是这个问题,写个过滤器也不起作用,只好在取值的时候,一个个做转换才可以,累死人,这能行吗?所以现在都不用mysql了!
      

  3.   

    楼上的方法试过了,不好使
    我感觉楼上的方法和conn.setCharacterEncoding("utf-8"); 本质上是一个东西
      

  4.   

    你建表的时候也要用UTF-8格式
      

  5.   

    #2楼的方法试过了,不好使
    我感觉#2楼的方法和conn.setCharacterEncoding("utf-8"); 本质上是一个东西 
      

  6.   

    第一:你可能修改的时候没有修改成功
          a).你的修改没有都改成utf8
         b).你要重启一下MYSQL第二:你存入数据库的数据本身就是乱码。你要检查一些你存入的数据是不是乱码解决方法:
       第一:
         [mysql]default-character-set=utf8
    # SERVER SECTION
    # ----------------------------------------------------------------------
    #
    # The following options will be read by the MySQL Server. Make sure that
    # you have installed the server correctly (see above) so it reads this 
    # file.
    #
    [mysqld]# The TCP/IP Port the MySQL Server will listen on
    port=3306
    #Path to installation directory. All paths are usually resolved relative to this.
    basedir="E:/MYSQL/"#Path to the database root
    datadir="E:/MYSQL/Data/"# The default character set that will be used when a new schema or table is
    # created and no character set is defined
    default-character-set=utf8第二:你手动的插入一条中文数据到数据库里,再查看
       我刚才也安装MYSQL ,我故意一开始的时候是设置编码为拉丁文,后来按照我上面说的操作,插入一条中文,查询出来仍然是中文
       如果你感觉这样设置很麻烦的话,你可以一开始的时候就设置为utf8,就可以了
      

  7.   

    我之前用的是解压版的Mysql,
    现在换了安装版,安装时选择utf-8编码,不用任何配置,乱码问题解决
    对比一下,我开始乱码原因就在character_set_database 
    和character_set_server没有改成utf-8编码
      

  8.   

    我一般安装时选择gbk编码,如果是中文的用gbk编码可以了。
      

  9.   

    我也喜欢用GBK,别人页面用的utf-8
    不想给自己添麻烦,就用utf-8了