具体现象见下表:mysql> select * from person;
+----+-------------+-------------+
| Id | Nam         | Ifo         |
+----+-------------+-------------+
|  2 | Me          | Good boy!!! |
|  3 | Wangqunfeng | gggg        |
+----+-------------+-------------+
2 rows in set (0.01 sec)mysql> insert person(Nam,Ifo) values('我','好人');
ERROR 1366 (HY000): Incorrect string value: '\xCE\xD2' for column 'Nam' at row 1
mysql>
Nam 类型为varchar(20)
Ifo类型为varchar(100)望高手指点

解决方案 »

  1.   

    补充一下:
    各字符集设置如下:
    mysql> show VARIABLES like "character%";
    +--------------------------+-------------------------------------+
    | 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       | D:\MySQL Server 5.1\share\charsets\ |
    +--------------------------+-------------------------------------+
    8 rows in set (0.15 sec)
      

  2.   

    建数据库及建表最好先指定编码
    CREATE DATABASE db_name DEFAULT CHARACTER SET utf8;
    CREATE TABLE  `db_name`.`tb_name` (
          id VARCHAR(20) NOT NULL,
         name VARCHAR(20)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
    在查询前先执行 set naems gbk;
     以什么编码自己指定
      

  3.   

    楼上的都是正解  也可以直接在MYDQL 里设置 数据库编码为GBK
      

  4.   

    你mysql的字符集在安装的时候一定配置成latin了吧
    改成gbk就可以了
      

  5.   

    改mysql 的配置文件就行了
      

  6.   

    set names gbk;(把库,表,字段编码都设置成gbk,就是说一下命令要让数据库按照这个编码执行,而无论你的windows命令行默认编码是什么)
    insert into person(Nam,Ifo) values('我','好人');
      

  7.   

    mysql_query('set names gbk')
      

  8.   

    我是为了让mysql 和php 编码一致才改成utf8的。
    gbk、gb2312 在mysql里还能显示汉字,可到了php里就乱码了。
    php 页面里指定gbk 、gb2312也是乱码。。
    都换成utf8 又不能写入汉字记录......
    高手帮忙啊.....
      

  9.   

    向LZ推荐一篇文章,对于解决这类问题或许很有帮助。http://www.4pang.com/2010/08/12/%E6%B7%B1%E5%85%A5mysql%E5%AD%97%E7%AC%A6%E9%9B%86%E8%AE%BE%E7%BD%AE.html
      

  10.   

    http://www.4pang.com/2010/08/12/%E6%B7%B1%E5%85%A5mysql%E5%AD%97%E7%AC%A6%E9%9B%86%E8%AE%BE%E7%BD%AE.html
      

  11.   

    执行数据库插入操作之前,加上 mysql_query("SET NAMES gbk");
      

  12.   

    这个问题实际上在于你输入的中文是什么编码.....你在这个控制台输入的,不出意外应该是gbk,
    所以,在运行insert前,需要set names gbk, 也就是把你的
    character_set_client, character_set_connection , character_set_results 设为了gbk. 在你的php程序里,一样要根据你的输入输出编码决定是要set names gbk还是utf8. 
      

  13.   

    为什么全要GBK呢?utf-8不可以吗?
      

  14.   

    还没解决吗?有错误提示 
    ERROR 1366 (HY000): Incorrect string value: '\xCE\xD2' for column 'Nam' at row 1
    可知,插入的是 gbk 编码的数据当然,你在命令窗口也只能输入 gbk 编码的内容但你的补充说明里告知表是 utf8 编码的
    所以你在插入前需执行一次,语言声明
    mysql> set names gbk
    mysql> insert person(Nam,Ifo) values('我','好人');
      

  15.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码