drop database if exists `test999`; 
CREATE DATABASE test999 DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';use test999;
CREATE TABLE test (  ID varchar(40) NOT NULL default ''                      
                      ) CHARSET=utf8 COLLATE=utf8_bin;
insert into test(ID) values ('埗');select * from test;+----+
| ID |
+----+
| ?  |
+----+

解决方案 »

  1.   

    WINDOWS下的DOS并不能很好地支持UTF8所以在你INSERT之前
    set name 'gbk';然后再
    insert into test(ID) values ('埗');
      

  2.   

    utf8字符集在你的终端上无法正常显示。
    改用gbk吧。
      

  3.   

    set names gbk;
    select * from test;
      

  4.   

    [client]
    default-character-set=gbk[mysqld]
    default-character-set=utf8插入和显示都没有问题了!!!!!! 
      

  5.   

    提示一下,这个my.ini必须是在mysql的最终搜索路径上。
      

  6.   

    http://topic.csdn.net/u/20100628/18/fe5d2c4e-9c61-4c2a-aabb-4c7bccb58b5a.html
    set name 'gbk'; 一下。参考下贴关于字符集的介绍部分
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  7.   

    如果你是在命令行下,用
    set names 'gbk'如果你用图形化管理工具,如SQLYOG之类的,可以不用设置
      

  8.   

    drop database if exists `test999`;  
    CREATE DATABASE test999 DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';use test999;
    CREATE TABLE test ( ID varchar(40) NOT NULL default ''   
      ) CHARSET=utf8 COLLATE=utf8_bin;
    insert into test(ID) values ('埗');select * from test;+----+
    | ID |
    +----+
    | ? |
    +----+set names gbk;
    insert into test(ID) values ('埗');
    select * from test;
    +----+
    | ID |
    +----+
    | ?  |
    | ?  |
    +----+
      

  9.   

    按下贴中的检查方法贴出你的检查结果。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  10.   

    运行一下show variables like 'char%'
    看看
      

  11.   

    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | gbk                        |
    | character_set_connection | gbk                        |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | gbk                        |
    | character_set_server     | latin1                     |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
      

  12.   

    mysql> CREATE DATABASE test999 DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_genera
    l_ci';
    Query OK, 1 row affected (0.00 sec)mysql>
    mysql> use test999;
    Database changed
    mysql> CREATE TABLE test ( ID varchar(40) NOT NULL default ''
        ->   ) CHARSET=utf8 COLLATE=utf8_bin;
    Query OK, 0 rows affected (0.11 sec)mysql> insert into test(ID) values ('埗');
    ERROR 1366 (HY000): Incorrect string value: '\x88\xB6' for column 'ID' at row 1
    mysql>
    mysql> select * from test;
    Empty set (0.02 sec)mysql> set names gbk;
    Query OK, 0 rows affected (0.00 sec)mysql> insert into test(ID) values ('埗');
    Query OK, 1 row affected (0.03 sec)mysql> select * from test;
    +----+
    | ID |
    +----+
    | 埗   |
    +----+
    1 row in set (0.00 sec)mysql>
      

  13.   

    一樣的做法.....mysql3 可以 mysql 5亂碼.. 部份操作系統mysql5也可以 跟ODBC有關?
    mysql> CREATE DATABASE test999 DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_genera
        '> l_ci';
    ERROR 1273 (HY000): Unknown collation: 'utf8_genera
    l_ci'
    mysql> CREATE DATABASE test999 DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
    Query OK, 1 row affected (0.00 sec)mysql> use test999;
    Database changed
    mysql> CREATE TABLE test ( ID varchar(40) NOT NULL default ''
        -> ) CHARSET=utf8 COLLATE=utf8_bin;
    Query OK, 0 rows affected (0.00 sec)mysql> insert into test(ID) values ('埗');
    Query OK, 1 row affected (0.00 sec)mysql> select * from test;
    +----+
    | ID |
    +----+
    | ?  |
    +----+
    1 row in set (0.00 sec)mysql> set names gbk;
    Query OK, 0 rows affected (0.00 sec)mysql> insert into test(ID) values ('埗');
    Query OK, 1 row affected (0.00 sec)mysql> select * from test;
    +----+
    | ID |
    +----+
    | ?  |
    | ?  |
    +----+
    2 rows in set (0.00 sec)
      

  14.   

    13楼的代码是在MYSQL5.1.31下测试的,默认字符集是UTF8
      

  15.   

    没看到什么大问题。
    你用的版本是多少?
    运行一下这个:
    select @@version;
      

  16.   

     mysql 5.0.45  請問下關 默认字符集的事么? 不是在建或插都設置了對應的編碼么?
      

  17.   

    我在| 5.1.46-community |下试验没什么问题。是在dos命令行上。一度我怀疑是你的版本的问题。现在看来不是。
    猜测,你难道不是在dos控制台下运行的?
    或许你在Linux的控制台下。如果是那样,你先调好控制台的字符集为gbk吧。
      

  18.   

    是在dos控制臺..服務器Linux....算了 結貼。。 ~~