JDBC+MySql 1(编码问题的处理)

来源:互联网 时间:1970-01-01


windows下 MySQL编码乱码问题(以utf8为例):

一 首先创建数据库test1----设置数据库默认编码utf8

DROP database IF EXISTS `test1`;
CREATE database `test1` default character set utf8;
use `test1`;


二 使用数据库后设置utf8----设置 character_set_client , character_set_results , character_set_connection 三者都为utf8
SET names utf8;

三 创建表格后设置utf8----设置表格的编码类型

DROP TABLE IF EXISTS `t_user`;
CREATE TABLE t_user(
`id` int PRIMARY KEY auto_increment,
`username` varchar(30) NOT NULL COMMENT '用户',
`password` varchar(30) NOT NULL COMMENT '密码'
)ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;

输入/s查看设置

得到:

Connection id:          15
Current database:       test
Current user:           [email protected]
SSL:                    Not in use
Using delimiter:        ;
Server version:         6.0.11-alpha-community MySQL Community Server (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 6 hours 21 min 45 sec

此时windows下,默认输入为gbk编码,在mysql中显示为gbk编码格式,而由于数据库的设置都是utf8

所以在数据库中显示的汉字为:utf8以gbk显示,显示为正常的乱码,不是???之类的


要插入数据需保证以utf8格式插入数据库,否则为乱码

四 jdbc下 连接数据库时,其中

url=jdbc:mysql:///test?useUnicode=true&characterEncoding=utf8   ----需注意:在xml文件中,没有&符号,需使用&


保证以上四点,jdbc访问数据库时 ,不会出现乱码问题

注意:

设置完以上四点后,在Mysql上直接输入中文,会导致编码错误,如查询,以中文的为限定条件,会导致,报错,如形如:没有/x3c2x2 

可以将代码写入如:test1.sql文件,来访问(将该文件设置为utf-8类型)

可以通过source D: //test1.sql;

导入D盘test1.sql文件






相关阅读:
Top