SSH - Data truncation: Data too long for column 'name' at row 1

mysql能把英文字段插如数据库了 当我输入中文时他就出现字段Data truncation: Data too long for column 'name' at row 1 
  我使用朋友的这个方法:(1)修改 C:/Developer/MySQL5.0/my.ini(MySQL Server Instance Configuration 文件)
设置default-character-set=gbk(注意,有2处)
(2)修改data目录中相应数据库目录下的db.opt配置文件
default-character-set=gbk
default-collation=gbk_chinese_ci
重起mysql,就ok了.
 但问题还是这样的!
朋友门还有其他办法吗?
 当然我的name varchar(40) 能查入20个汉字的 我只要查如2个字!

 回复内容
【zqswork】:
顶起来!!

【zqswork】:
up

【zqswork】:
顶到解决止!

【lindeqiang】:
前天也是遇到了这个问题,因为我的my.ini文件配置编码方式为:UTF8
按理来说插入韩文没有问题,但是也是提示Data truncation: Data too long for column 
最后我发现一个根本问题,就是建表的时候表的编码方式是gb2312,我估计你虽然设置了gbk
但是表的编码方式为latin,你再看看

【zqswork】:
如果这样的话 难道就只有改变表的编码方式了? 要不重新键表!

【zqswork】:
的确是你说的那样 我的表的编码方式还是latin1_swedish_ci 但不知道为什么改变不过来!能告诉我怎么改变吗?

【zqswork】:
UP

【lindeqiang】:
用前台工具SQLyog,比较直观

【zqswork】:
我是用的哪个!

【zqswork】:
这个问题还在  顶死!

【zqswork】:
顶到 死!!!!!

【grady0926】:
修改字段的长度就OK了吧

【zqswork】:
不是字段长度的问题  !  应该是编码问题!

【lchh5】:
是编码的问题,数据库,表和字段的编码和jsp的编码统一,就应该能解决了,比如都是utf-8

【lchh5】:
例如将所有的编码都设置成utf8,jsp的contentType="text/html;charset=utf-8"
修改数据库默认编码ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 
修改表字段的编码ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL

【zqswork】:
UP

【zqswork】:
这个问题差不多一个月没有解决 CSDN上很多朋友提供了N多办法!但是都因为要改这改那很麻烦。现在是晚上1:24 (07/5/25夜)问题解决总结如下:
-----------------------------------------------------------
  mysql5.0+myeclipse4.1+tomcat5.0 全部使用默认编码方式
  1:插如数据到mysql中:
     在页面上加入本页的编码方式 
    <%@ page contentType="text/html;charset=gb2312" %>
     把你要插入的中文文字由gb2312转变为iso-8859
    title = new String(title.getBytes("GB2312"), "ISO-8859-1");
    ***注意此页面千万别在数据库的URL后面加任何编码方式*****
    conn = java.sql.DriverManager.getConnection    ("jdbc:mysql://localhost/zqswork","root","root");
  
   2:从mysql中读出数据到页面:
     依然在页面上加如编码方式
  <%@ page contentType="text/html;charset=gb2312" %> 
     把你要读出的中文由iso-8859转变为gb2312
  <%username = new String(username.getBytes("ISO-8859-1"), "gb2312");%>
   ****注意此页面一定要在数据库url处加入编码方式(与上面相反)******
    conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/zqswork?useUnicode=true&characterEncoding=gb2312","root","root"); 



---------------------------------------------------------------ok 继 续你的j2ee旅游 吧!                                                                              byzqswork

【findu_at】:
这个问题请注意3点:
1。创建数据库的时候:CREATE DATABASE `database`
                        CHARACTER SET 'utf8'
                         COLLATE 'utf8_general_ci';
2.建表的时候          CREATE TABLE `database_user` (
                        `ID` varchar(40) NOT NULL default '',
                        `UserID` varchar(40) NOT NULL default '',
                      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.设置URL的时候       jdbc:mysql://localhost:3306/database?seUnicode=true&characterEncoding=UTF-8

这3个设置好了,基本就不会出问题了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值