日期:2014-05-16  浏览次数:20699 次

java连接mysql插入中文乱码问题
刚开始接触jdbc时写了个例子程序连接mysql,插入中文时出现了乱码,而在mysql客户端插入中文时不会出现乱码。这时我就纠结了。各种百度,期间我了解了字符集编码,还不是很深入。知道了是编码不一致而导致的。于是乎,我就开始了统一编码和mysql的学习了。
期间,我通过show variables like ‘char%’命令查看编码,set character=编码来改变编码,但是一关闭MysqlClient端窗口再重新打开一个(我安装mysql后直接从程序中启动的,不是用命令的,而且后来我才知道我的mysql服务器是开机启动的),发现编码并没有改变,经过一些努力,通过命令关闭了mysql服务器又重新启动了服务器。这次编码就改变成了自己设定的。结果试验时又出现 了一点小问题。我创建了sql脚本文件p.sql,执行后出现如图错误,我一直想不通,我和其他的都一样啊,最后不甘心,和人家的一一比对,由于是在eclipse下编写的sql脚本文件,很容易的就发现了insert语句中values和后面的(间我少了空格,就改 了下,一执行竟然成功了,一个空格都能造成error,让我很无语。脚本代码如下:
use spj;
create table p
(
PNO char(5) primary key,
PNAME char(23),
COLOR char(13),
WEIGHT int
);

insert into p values('P1','螺丝','红',12);
insert into p values('P2','螺母','绿',15);
insert into p values('P3','螺丝刀','蓝',13);

一个空格就出错了。当这个问题解决了,java连接出现乱码的也好了。