(= =)搞了许久觉得有必要记下来..
由于我本地的mysql都设置好了,但是服务器的又不能去改它 毕竟还有其他人要用- -;
所以只能是我建的时候去设置一下了,
首先先建数据库 ,表;;
create database w2oa; use w2oa; create table user(id int primary key auto_increment,name varchar(60),password varchar(40),photoname varchar(50),isadmin int,score int,stuid varchar(12), tel varchar(20),sex varchar(20), qq varchar(20),banktype varchar(40),banknumber varchar(25),email varchar(40),grade_class varchar(100), birthday DATE,direction varchar(30),ing int, intro varchar(200) );
注册可以不报错,注册里面最长的字段grade_class 13计算机实验班都可以 但是悲剧的是 登入完出现的页面出现"?"这样的乱码
百度了一番
说是要
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/w2oa?useUnicode=true&characterEncoding=utf-8 jdbc.username=zjx jdbc.password=zjx
加上
?useUnicode=true&characterEncoding=utf-8就能解决(后来想想也确实是这样 因为乱码的问题有好几种,我的是属于在action里面添加到数据库的时候出现的乱码,所以应该在连接的时候设置下这个属性)
本以为可以了很开心..
结果意想不到的事情又来了..
注册都注册不了 报错!!
ERROR:
Incorrect string value: '\xE5\x85\xB6\xE4\xBB\x96' for column...就是不能插入那个13计算机实验班的数据... 于是又百度了一番..
最后发现了一个问题... 数据表的编码不是utf8。。。
因为我本地数据库默认的是创建的时候就设置为utf8。。
所以服务器建表那边要改
然后统统删了 重新建.....
create database w2oa; use w2oa; create table user(id int primary key auto_increment,name varchar(60),password varchar(40),photoname varchar(50),isadmin int,score int,stuid varchar(12), tel varchar(20),sex varchar(20), qq varchar(20),banktype varchar(40),banknumber varchar(25),email varchar(40),grade_class varchar(100), birthday DATE,direction varchar(30),ing int, intro varchar(200) )default charset=utf8; create table project(id int primary key auto_increment,name varchar(60),ismark int,fbname varchar(60),filename varchar(100),status varchar(20),begintime DATE,finishtime DATE, intro varchar(1000),ios int,j2ee int,android int,php int,qianduan int,unity3d int,other int)default charset=utf8; create table u_p(upid int primary key auto_increment,uid int,pid int,upscore int ,upstatus varchar(20))default charset=utf8; create table apply(aid int primary key auto_increment,pname varchar(60),uid int ,uing int,udirection varchar(30),pid int,uname varchar(60), ustuid varchar(12),uphotoname varchar(50),status int)default charset=utf8;
注意这一句
default charset=utf8;因为在我没加这句的时候 建表完;
执行 show create table user; 发现
是这样的:
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |编码不匹配,,导致我在建表的时候不能用中文
这样就ok了、 记录下来用来让需要的人少走弯路
转载请注明出处:http://blog.csdn.net/u011644423/article/details/39735623
版权声明:本文为博主原创文章,未经博主允许不得转载。
today lazy . tomorrow die .