J2EE Oa项目上传服务器出现的乱码解决过程

(= =)搞了许久觉得有必要记下来.. 


由于我本地的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: 'xE5x85xB6xE4xBBx96' 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 .
原文地址:https://www.cnblogs.com/france/p/4808629.html