Mysql数据库中文乱码问题

毫无疑问,Mysql数据库中文乱码问题是一个很棘手的问题:搞了大半天才得以会显示中文,但原理还是不懂。首先,我先把我成功的方法列一下:

1.设置jdbc:url为jdbc:mysql://localhost:3306/searchengine?useUnicode=true&characterEncoding=gb2312;

2.建表时:mysql> create table stud(
          -> name varchar(20) not null,
          -> password varchar(20) not null)
          -> TYPE=MyISAM,
          -> default character set gb2312;

就是在原先的基础上加上TYPE=MyISAM,default character set gb2312;

3.现在基本上可以了,能向数据库里面插入数据了,好像是如果还有乱码,可以键入

default-character-set=gb2312 -u root -p;

我发现根本没用。

注:因为我已经把Mysql下面的my.ini文件中的

[mysql]

default-character-set=gb2312

# created and no character set is defined
default-character-set=gb2312

格式改掉了(我现在不知道,这个与上面的方法是并存的,还是两者取其一即可,还是只能用上面的方法而下面的修改无关紧要)

另:

页面加上   
<%page   language="java"   contentType="text/html;charset=gb2312"   %>   
<meta   http-equiv="Content-Type"   content="text/html;charset=gb2312">

你可重装mysql,在安装mysql时选用gbk   (不出意外的话,这个方法应该不行)

你可下载个mysqlfront  在里面把字体设置成gbk既可(用其他可视化工具也行,如EMS   SQL   Manager   2005   for   MySQL)

这个东西也不知道有没有用:

SET character_set_client='gbk'
SET character_set_connection='gbk'
SET character_set_results='gbk'
这个配置就等价于 SET NAMES 'gbk'。

最后郑重声明:以上GBK均可以改成utf8,一般没“”就不加“-”号。

可能要与jsp及java统一。