我mysql默认编码是latin1,这时在mysql命令行还能往数据库表插入中文字符,怎么把编码改为utf8后,中文字符就插不进去了?说是语法错误,菜鸟求解释。。

解决方案 »

  1.   

    show variables like 'char%';
    你先查询下 你的编码 是否修改成功了!
    然后在执行  set names utf-8在写入数据试试呢
      

  2.   

    set names gbk;然后插入中文
      

  3.   

    还不行,提示错误Incorrect string value:'\xCE\xD2' fro column 'userName'
    insert into users(userName,userPassword) values('我','1');userName,userPassword都市varchar,这没错吧
      

  4.   

    检查你的字符集设置。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  5.   

    按说,utf8也支持中文,可我就在mysql命令行里插入中文字符,也出现乱码,而且show variables like
    'char%'里也都为utf8(重装是默认utf8),但set names gbk就行啦,utf8有这问题吗?我现需用utf8而不是gbk!
      

  6.   

    还是要gbk好一点。不要用utf-8. 
      

  7.   

    mysql> use netshop;
    Database changed
    mysql> show variables like 'char%';
    +--------------------------+--------------------------+
    | 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\share\charsets\ |
    +--------------------------+--------------------------+
    8 rows in set (0.00 sec)mysql> select * from goodsField;
    Empty set (0.00 sec)mysql> insert into goodsField(name,tag) values('我',1);
    Query OK, 1 row affected, 1 warning (0.09 sec)mysql> select * from goodsField;
    +----+------+------+
    | ID | name | tag  |
    +----+------+------+
    |  1 |      |    1 |
    +----+------+------+
    1 row in set (0.00 sec)
    如上,那个name没内容,我用的就mysql5.5.61的命令行
      

  8.   

    你使用的什么工具?为什么不愿意说明?非要让别人猜?如果是WINDOWS下的DOS中的MYSQL命令行工具,则原因是WINDOWS下的命令行无法正常支持UTF8,你只能使用 set names 'gbk' 设置客户端为GBK,但数据库实际存储的仍为utf8
      

  9.   

    哦,本来在做jsp,看到插入有问题,而jsp页面无问题,就来找mysql的问题,后来就发现这问题,工具也就是mysql命令行工具,我说过,不过没说操作系统,原因大概是这样吧,
    再问下,我jsp页面编码格式也要统一为gbk吗,改过后感觉使用utf-8也没乱码问题