[非常急]据说是新手一劫,mysql用latin1编码,中文查询为什么都是乱码?该怎么解决

[非常急]据说是新手一劫,mysql用latin1编码,中文查询为什么都是乱码?

数据库连接用useUnicode=true&characterEncoding=ISO-8859-1

insert用PreparedStatement没问题,但是查询用PreparedStatement和Statement都查不到。

我用New   String(xxx.getBytes( “code1 “), “code2 “);code1和code2用ISO-8859-1,UTF-9,gb2312反复试过都不行,特别是name   =   new   String(name.getBytes( “ISO8859_1 “), “UTF-8 “);,控制台已经是中文了,查询还是不行。

加上stmt.execute( “set   names   ‘gb2312 ‘ “);或者其他的,也没用,或者直接报错说用like查询,查询的字符集不匹配。

mysql的latin1编码不能改,我是租用别人的空间。有没有好的解决方案?



改三个地方完全搞定,我也是前不久遇到这问题

1:改一下你的MYSQL配置,因为一开始他的默认安装配置编码是latin1(瑞士国家的编码,因为MYSQL是瑞士公司的,当然支持中文),方法如下:找到F:\MySQL\my.ini文件,中间有二句是default-character-set=latin1 改成default-character-set=GBK

2:在建表的时候最后加default character set gbk(编码设为GBK当然也可为其它,建议为GBK)如CREATE TABLE student (

name char(20) NOT NULL,

password char(20) NOT NULL)

default character set gbk;

3:在连接数据库的程序中的URL这样写:Connectioncon=DriverManager.getConnection “jdbc:mysql://localhost:3306/你的数据库名?useUnicode=true&characterEncoding=gbk “, “root “, “你的密码 “);

万事OK,改了第1步当然要重新打开一些东东,如DOS窗口(假如你在DOS下建表),还不行的话就不知道咯~_~,%95会OK的




“mysql的latin1编码不能改,我是租用别人的空间。?

那当你用DOS 操作MYSQL时先运行这样一句命令

“SET NAMES ‘GBK ‘;(有没有单引号不记得了)这样一样改了编码,只不过是暂时的,DOS窗口一关就又恢复默认的了




下面文章对你会有帮助

http://www.programmerstudy.com/database/mysql/20084/142.html

[非常急]据说是新手一劫,mysql用latin1编码,中文查询为什么都是乱码?该怎么解决

相关文章:

你感兴趣的文章:

标签云: