两个多小时了,弄mysql的汉字问题。。
开始能用sql语句插入汉字,但是从java项目里不能插入汉字,于是重新安装mysql选择了utf8,但是data too lang for column,varchar(100),就插一个汉字,怎么会不够!!!于是google了一下,这个问题还真不少,但是看了一个小时吧,我又崩溃,google出来的问题的解决方法基本上都一样,
解决办法:
在my.ini里找到(此文件在mysql安装目录下)
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
把其中的STRICT_TRANS_TABLES,去掉,
或者把sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
注释掉,然后重启mysql就ok了这样做插入的是null
建数据库的时候加上default character set utf8 collate utf8_general_ci
create database test_001 default character set utf8 collate utf8_general_ci;没用。三
mysql> SHOW VARIABLES LIKE 'character_set_%'; 
执行这条命令以后只有character_set_filesystem 是 binary,其他的都是utf8

....
反正试了好多种方法,我的耐心快耗尽了。。

解决方案 »

  1.   

    实在不行我就再次重装,只要能解决这个问题就行。。
    我觉得就算是有人知道但是看不到还是不好解决,所以不管用什么办法,请帮我解决中文问题,而且用java项目。。
    谢谢。
      

  2.   

    实在不行我就再次重装,只要能解决这个问题就行。。
    我觉得就算是有人知道但是看不到还是不好解决,所以不管用什么办法,请帮我解决中文问题,而且从java项目也能往数据库里读写。。
    谢谢。
      

  3.   

    错误信息是什么,有无错误 日志,建表 SQL语句是什么,数据库、表、字段的字符集是什么
     SHOW VARIABLES LIKE 'character_set_%';
      

  4.   

    create database text default character set utf8 collate utf8_general_ci;create table mytab(mid int primary key,mname varchar(50));insert into two values(12,"我");ERROR 1406 <22001>:Data too lang for column 'mname' at row 1
    SHOW VARIABLES LIKE 'character_set_%';
      

  5.   

    insert into mytab values(12,"我");
      

  6.   

    你是在JAVA中运行还是在MYSQL中?用你的代码在MYSQL中运行,没有问题
      

  7.   

    这个可能和编码有关。看你数据中的字段的校验编码。另外,看你输入时数据的编码。你将一个汉字插入latin1编码字段,长度上肯定有问题,utf8的就更有问题了
      

  8.   


    是不是utf8不支持汉字啊???
      

  9.   

    utf8绝对是支持汉字的。这个可以放心。
      

  10.   

    楼方可以参考一下这个贴子中关于字符集的说明。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  11.   

    谢谢。。没想到mysql中文乱码这么麻烦啊
      

  12.   

    支持,我的MYSQL字符集就是UTF8的,用你的代码测试,没有问题
      

  13.   

    你dos环境是GBK, 而你的CHARACTERS-SETS-CLIENT为utf8
    改成gbk就可以了
    set names gbk;记住:你工作的环境一定要和CHARACTERS-SETS-CLIENT的编码一致。