mysql 支持几十种编码方式,并且默认的编码latinl对中文支持不太好,gb2312是针对中午的编码方式,每个汉字占2个字节,解析比较简单,但是仅能编码 中文字符,中文网站往往采用gb2312,,如baidu,gbk类似于gb2312,但是比gb2312编码更多的中文以及中文字符,uft-8能够编码目前为止任意的语言,国际化的网站采用utf-8
1从控制台修改编码
mysql->alter database nj character set utf8;
查看当前数据库编码的方式断的命令:show variables like 'character_set_database';
2从配置文件修改编码
用记事本打开mysql目录下的my.ini文件(c:\program files\mysql\mysql server 5.0\my.ini)找到下面一句话:
default-character-set=latinl
应该有这行代码,将编码方式latinl都改为utf8即可
3url中指定编码方式
另外,还需要指定jdbc连接的编码方式,方法是修改链接url
Connection conn=DriverManager.getConnerction("jdbc:mysql://localhost:3306/nj?unicode=true&characterEncoding=utf-8",'root','admin');
做完上述设定之后,一般就没有乱码了,如果还有乱码,检查是否对request进行了编码,如果没有,从request取到的字符串也会乱码,注意jsp页面编码,
request编码,response编码,数据库编码必须一致
Tomcat的server.xml中也要修改,为get方式获取数据添加urlEncoding参数,指定utf-8编码,默认为ISO-8859-1
<Connector port="8080" protocol="http/1.1"
connectionTimeout="20000"
redirectPort="8443" urlEncoding="utf-8"/>