编码信息为:
 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插入数据的情况为:
mysql> insert into user values(2,'asdf');
Query OK, 1 row affected (0.02 sec)mysql> insert into user values(2,'asdf');
Query OK, 1 row affected (0.03 sec)mysql> insert into user values(2,'啊');
ERROR 1366 (HY000): Incorrect string value: '\xB0\xA1' for column 'name' at row
1请问这是怎么回事啊?解决方法是什么?记得用latin1的时候是可以写入汉字的。

解决方案 »

  1.   

    set names utf8;
    insert into user values(2,'啊');
      

  2.   

    set name 'gbk' 
    然后再试一下。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  3.   

    windows 的命令行工具下无法正确的支持UTF8的输入。所以需要用GBK或者GB231。
      

  4.   

    SHOW CREATE TABLE `user`在命令行下
    set names utf8
    or
    set names gbk
    试试
      

  5.   

    还是不行啊,怎么回事?请教了。
    mysql> set names utf8;
    Query OK, 0 rows affected (0.02 sec)mysql> insert into user values(5,'这');
    ERROR 1366 (HY000): Incorrect string value: '\xD5\xE2' for column 'name' at row
    1
    mysql>
      

  6.   

    SHOW CREATE TABLE `user`;
    set names gbk;
      

  7.   


    mysql> show variables like 'collation_%';
    +----------------------+-------------------+
    | Variable_name        | Value             |
    +----------------------+-------------------+
    | collation_connection | utf8_general_ci   |
    | collation_database   | latin1_swedish_ci |
    | collation_server     | latin1_swedish_ci |
    修要向如下修改:
    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)
    -----------------------------------------------------------
    Database home directory 下面的db.opt这个文件也需要修改  ,如下:
    mysql> create database mysqldb;
    Query OK, 1 row affected (0.00 sec)
    mysql> exit
    [root@mysqlap bin]# vi /var/lib/mysql/mysqldb/db.opt
    default-character-set=latin1
    default-collation=latin1_swedish_ci
    改成下面的:
    default-character-set=utf8
    default-collation=utf8_general_ci
    重新启动服务器(注意在更改字符集之前,建的所有表都需要重建,这一动作不会对已经建好的表起作用):
    MySQL server restart:
    [root@mysqldb mysqlserver]# /etc/init.d/mysql restart
      

  8.   


    set names gbk;  后是可以输入汉字的,这是为什么呢? 我要用的utf8啊。请问,这该怎么解决呢?
      

  9.   

    set name 'utf8'
    或SET name 'gbk'