在建数据库的时候,需要设置编码,Mysql默认的编码是拉丁文 比如, create database db_name default character set=utf8; 在使用hibernate是没有问题的。先查看下数据库的编码方式, show variables like "character%";
我的数据库编码是utf-8,过滤器默认编码也是utf-8
更奇怪的是当我手动插入数据时居然显示 data too long .... 这我就不明白了,用hibernate插入式为什么就没有报错,而手动插入时就报错, 真是让人暴走
登录mysql后,使用status命令,查看一下,看那4个编码集的地方是不是所有都显示UTF-8
Connection id: 3 Current database: filmsystem Current user: root@localhost SSL: Not in use Using delimiter: ; Server version: 5.0.22-community-nt Protocol version: 10 Connection: localhost via TCP/IP Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 TCP port: 3306 Uptime: 12 min 20 secThreads: 1 Questions: 58 Slow queries: 0 Opens: 4 Flush tables: 1 Open tabl es: 9 Queries per second avg: 0.078
不是的话 过滤器也添加了 页面编码什么的都统一成utf8
create database db_name default character set=utf8;
在使用hibernate是没有问题的。先查看下数据库的编码方式,
show variables like "character%";
这我就不明白了,用hibernate插入式为什么就没有报错,而手动插入时就报错,
真是让人暴走
Current database: filmsystem
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.22-community-nt
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 12 min 20 secThreads: 1 Questions: 58 Slow queries: 0 Opens: 4 Flush tables: 1 Open tabl
es: 9 Queries per second avg: 0.078
整个项目属性以及项目中所有的文件的属性都设为UTF8
如果有的话,改完之后得重启MYSQL
哦。那你试试这种:
str=new String(str.getBytes("ISO-8859-1"),"gb2312");