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个设置好了,基本就不会出问题了 |