您的位置:首页 > 其它

Data truncation: Data too long for column 'big_bit' at row 1

2014-04-24 21:46 721 查看
出现这个问题主要有两种原因:

1、编码问题

2、数据长度问题

对于第一个问题,我们只需要调整字段长度即可,例如我在mysql的表中插入一张图片,如果图片字段的格式为Blob(最大长度为65K),那么图片长度超过65K则会出现这个异常,解决办法是把Blob字段换成MediumBlob(16M)、或者LongBlob( 最大 4G)即可。

对于第二个问题就比较复杂了,以下为收集到的各种解决办法,我没有试过,仅供参考:

第一种情况:

将所有的编码都设置成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

第二种情况:

这种情况分为两步:插入数据和读取数据

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");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐