解决方案 »

  1.   

    Show variables like '%char%'
      

  2.   

       按下贴中的方法检查字符集设置。并贴出以供分析。
       
       http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  3.   

    +--------------------------+----------------------------+
    | 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
      

  4.   

    +--------------------------+----------------------------+
    | 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表
    | t_user | CREATE TABLE `t_user` (
      `id` int(10) NOT NULL,
      `name` varchar(40) COLLATE utf8_bin NOT NULL,
      `password` varchar(80) COLLATE utf8_bin NOT NULL,
      `phone` varchar(20) COLLATE utf8_bin NOT NULL,
      `icon` varchar(255) COLLATE utf8_bin NOT NULL,
      `gender` enum('f','m','s') COLLATE utf8_bin NOT NULL,
      `state` int(4) NOT NULL DEFAULT '0',
      `description` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `create_time` datetime DEFAULT NULL,
      `birthday` datetime DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id_UNIQUE` (`id`),
      UNIQUE KEY `phone_UNIQUE` (`phone`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin |
    mysql> show full columns from t_user;
    +-----------------+-------------------+-----------+------+-----+---------+-------+---------------------------------+---------+
    | Field           | Type              | Collation | Null | Key | Default | Extra | Privileges                      | Comment |
    +-----------------+-------------------+-----------+------+-----+---------+-------+---------------------------------+---------+
    | id              | int(10)           | NULL      | NO   | PRI | NULL    |       | select,insert,update,references |         |
    | name            | varchar(40)       | utf8_bin  | NO   |     | NULL    |       | select,insert,update,references |
    前端只是偶尔出现这个错误,但是编码都是utf8,求解
      

  5.   

    你的java代码中有没有设置正确的字符集进行连接。
      

  6.   

    jdbc:mysql://xx.xx.xx.xx:3306/name?&useUnicode=true&characterEncoding=UTF-8