MySql 编码 格式

Data truncation: Data too long for column 'name' at row 1
原因在于:建表的时候,表的编码和字段编码都是默认的latin1,设置为utf8后,问题解决。
创建表的时候 应该加上 default charset=utf8    

1、set names utf8;
http://apps.hi.baidu.com/share/detail/21043055

2、找到My.ini,和修改data目录中相应数据库目录下的db.opt配置文件
default-character-set=gbk
default-collation=gbk_chinese_ci

http://hi.baidu.com/zhaofei299/blog/item/e290ff99b9b889096f068c0b.html

3、修改数据库编码

  • 修改数据库编码,如果是数据库编码不正确: 可以在phpmyadmin 执行如下命令: ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
  • 以上命令就是将test数据库的编码设为utf8
  • 修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
  • 以上命令就是将一个表category的编码改为utf8
  • 修改字段的编码:
  • ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
    以上命令就是将test表中 dd的字段编码改为utf8


4、  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");


5、jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8




你可能感兴趣的:(mysql)