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统一。