1,设置mysql默认编码
首先查询一下show variables like 'character%';
确定所有的character都设置成utf-8
参考 http://www.diybl.com/course/7_databases/mysql/myxl/20081127/152726.html
mysql>show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
2,
a) 设置web容器的编码格式。为你的servlet的doGet或doPost方法开始处加入如下代码:
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
b) 为每个jsp页面指定其编码格式。
c) 在连接数据库用的URL后加入:useUnicode=true;characterEncoding=utf-8 如:
url="jdbc:mysql:///db1?useUnicode=true&characterEncoding=utf-8",
如果是xml文件中 url="jdbc:mysql:///db1?useUnicode=true&characterEncoding=utf-8",
3,
如果还出现乱码,则有可能是 表中的字段 的编码不是utf-8;
如果出现乱码的表是 book
mysql> show create table book;
+--------------------------+----------------------------+
| Table | Create Table|
+--------------------------+----------------------------+
|book | create table 'book'(
'id' int(10) unsigned NOT NULL AUTO_INCREMENT,
'bookname' varchar(45) CHARACTER SET latin1 NOT NULL,
'source' varc