在安装MySQl的时候,安装选择的字符集是UTF8,之后建立了数据表:
CREATE TABLE test (
id BIGINT NOT NULL,
testname VARCHAR(10) DEFAULT NULL,
testdesc VARCHAR(20) DEFAULT NULL,
teststate INTEGER DEFAULT 0,
testtype INTEGER DEFAULT 0,
PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
在插入全英文的数据时,正常插入。
如:
insert into test(id,testname,testdesc,teststate,testtype) values (1,'abcdefghij','abcdefghijklmn',10,10);
当插入中文时,出现了一下问题:
insert into test(id,testname,testdesc,teststate,testtype) values (2,'一','abcdefghijklmn',10,10);
这条插入正常。
insert into test(id,testname,testdesc,teststate,testtype) values (3,'一二','abcdefghijklmn',10,10);
这条插入失败,提示:Data too long for column 'testname' at row 1
我想是不是因为每个汉字占用6个字节,所以长度不够,于是我重建了表,将VARCHAR(10)修改为VARCHAR(50),之后再插入第三条记录,依旧提示:Data too long for column 'testname' at row 1
请问这是怎么回事?
[b]问题补充:[/b]
肯定是出现了问题我才上来问的!
你答不了就一句我骗人。
你想看图!我传了图!
[b]问题补充:[/b]
之前之一用GBK编码,没出过问题!这次需要使用UTF8,我就重新安装了数据库!但出现这样的问题!我的my.ini文件中,也是如下的设置:
[mysql]
default-character-set=gbk
[b]问题补充:[/b]
哦,刚才补充错了!
my.ini
[mysql]
default-character-set=utf8
[b]问题补充:[/b]
多谢xiao1230提供的信息。
这个问题依旧在我这里没有解决。
最初怀疑是用了SQLyog这个MySQL的工具,导致内容被转码后存储进数据库,再后来连直接敲打都不成功。
我也是第一次遇到这样奇怪的问题。连头绪都没有。
我准备重新安装一次数据库试试。