解决mysql5.0的中文乱码问题,只要按下面三步做就可以了:
1.第一步,修改MySql的配置文件my.ini:
在安装好Mysql后,在Mysql所在的目录下有一个my.ini文件,修改这个my.ini文件,修改方式如下:
1.1 在[client] 的后面加一条 default-character-set=gbk
2.2 把[mysql] 的后面 default-character-set=latin1 改成 default-character-set=gbk
#重要:这个设置的是MYSQL自带的命令行显示和输入的
2.3 把[mysqd] 的后面 default-character-set=latin1 改成 default-character-set=gbk
#重要:这个设置决定MySQL的工作环境的字符集!数据库继承MySQL设置的字符集,而表则继承数据库的字符集,字段则继承表的字符集!所以这里设置很重要!
2.4 在改了上面三处后,后面还一个default-character-set=latin1,这个default-character-set的作用是指定在创建新的表或数据库
时,所使用的默认字符编码,为了方便创建新的表或数据库,建议把定个 default-character-set也改成gbk。
2.第二步,设置与数据库连接的字符串:
在连接字符串(URL)后加上?useUnicode=true&characterEncoding=gbk这一句,具体如下:
jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=gbk
3.第三步,在java代码,把SQL语句转换成gbk的编码,然后再执行该SQL.
3.1 把字符串转换成gb2312的编码的方式如下:
public static String GBKConverter(String str) {
if (str == null) {
str = "";
} else {
try {
str = new String(str.getBytes("gbk"), "gbk");
} catch (Exception ex) {
ex.printStackTrace();
}
}
return str;
}
3.2 获取gbk编码的sql语句:
String sql = "select name from user ";
sql = GBKConverter(sql); // 获取gbk编码的sql语句,然后就可以执行该sql语句了。
3.3 JSP 文件的配置指令:
JSP部分:<%@ page contentType="text/html; charset=utf-8" %>
HTML部分:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
对别人的做了此修改,因为注释不多,看不懂,我又加了注释.