HoffmanSong 2009-12-15 16:04
浏览 445
已采纳

MySQL的Varchar只能插入一个中文字符,为什么??

在安装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的工具,导致内容被转码后存储进数据库,再后来连直接敲打都不成功。
我也是第一次遇到这样奇怪的问题。连头绪都没有。
我准备重新安装一次数据库试试。

  • 写回答

2条回答

  • weixin_42355128 2009-12-16 09:04
    关注


    我这用你的代码copy到数据库就好了
    没有问题
    是我把图给你截好了
    不是要看你的图
    可惜我不知道这个怎么贴图

    show create table 表名
    可以看到表的字符集

    如果你改了my.ini中的default-character-set=
    需要重起服务

    [img]http://hi.baidu.com/mr%5Fxyl/album/item/63248eb655d57f438bd4b2ad.html[/img]

    [url]http://hi.baidu.com/mr%5Fxyl/album/item/63248eb655d57f438bd4b2ad.html[/url]

    你可以上哪看看去

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥20 为什么我写出来的绘图程序是这样的,有没有lao哥改一下
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号