昨天装了个mysql5.5,在插入中文字符的时候提示错误
执行语句:
insert into student values(1003,'莫小鱼','男',18);
报错:
 Incorrect string value: '\xD3\xE3' for column 'name' at row 1

从网上查了是编码问题,开始装mysql的时候,选的是utf8,网上说的都是改成gbk就可以了。
可是我改成gbk了还是一样有错。
请教各位,这里的编码设置有什么要求呀?该如何设置才是正确的呢?

解决方案 »

  1.   

    show variables like 'char%'; 
      

  2.   

    谢谢,谢谢!已经解决了!
    找了篇文章,里面说得很详细
    http://blog.csdn.net/sunlin5000/article/details/657825
      

  3.   

    我在控制台插入中文没乱码了,可是在C++程序中,操作mysql,插入数据就出现了乱码。
    我使用的是OTL库连接mysql。在连接时设定了字符集为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       | C:\Program Files (x86)\MySQL\MySQL Server 5.5\share
    \charsets\ |
    +--------------------------+----------------------------------------------------
    -----------+
    8 rows in set (0.02 sec)
      

  5.   

    mysql> show full columns from student;
    +-------+-------------+-----------------+------+-----+---------+-------+--------
    -------------------------+---------+
    | Field | Type        | Collation       | Null | Key | Default | Extra | Privile
    ges                      | Comment |
    +-------+-------------+-----------------+------+-----+---------+-------+--------
    -------------------------+---------+
    | no    | int(11)     | NULL            | YES  |     | NULL    |       | select,
    insert,update,references |         |
    | name  | varchar(20) | utf8_general_ci | YES  |     | NULL    |       | select,
    insert,update,references |         |
    | sex   | varchar(2)  | utf8_general_ci | YES  |     | NULL    |       | select,
    insert,update,references |         |
    | age   | int(11)     | NULL            | YES  |     | NULL    |       | select,
    insert,update,references |         |
    +-------+-------------+-----------------+------+-----+---------+-------+--------
    -------------------------+---------+
    4 rows in set (0.07 sec)
      

  6.   

    mysql> show full columns from student;
    +-------+-------------+-----------------+------+-----+---------+-------+--------
    -------------------------+---------+
    | Field | Type        | Collation       | Null | Key | Default | Extra | Privile
    ges                      | Comment |
    +-------+-------------+-----------------+------+-----+---------+-------+--------
    -------------------------+---------+
    | no    | int(11)     | NULL            | YES  |     | NULL    |       | select,
    insert,update,references |         |
    | name  | varchar(20) | utf8_general_ci | YES  |     | NULL    |       | select,
    insert,update,references |         |
    | sex   | varchar(2)  | utf8_general_ci | YES  |     | NULL    |       | select,
    insert,update,references |         |
    | age   | int(11)     | NULL            | YES  |     | NULL    |       | select,
    insert,update,references |         |
    +-------+-------------+-----------------+------+-----+---------+-------+--------
    -------------------------+---------+
    4 rows in set (0.07 sec)
      

  7.   

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

  8.   


    我的解决了嘻嘻
    http://blog.csdn.net/sandy_shell/article/details/8307004
      

  9.   

    各位,继续帮忙下呀!!
    现在连接操作mysql没问题了,可是操作oracle出了点小问题。
    可以正确插入中文,可以查询出所有记录,也可以根据非字符型的参数进行查询
    但是如果根据字符型参数进行查询,就无法正常的查询出来。
      

  10.   

    oracle字符集,需要客户端跟服务器端保持一致。
      

  11.   

    楼主的问题是在终端不能插入中文,在终端插入时 修该终端连接字符集  set names gbk ; 即可实现插入中文,前提是在安装时选择字符集为UTF8,如果在工具中(如myeclipse中)强制插入数据,显示的时候也会是乱码,属于GIGO(garbage in garbage out).