原因:
1. 数据库/表所使用的字符集不支持中文;
2. 从客户端发往服务器的SQL语句编码不正确;
…
解决方法:
1. 创建数据库时指定数据库的字符集:
create database db_name default character set utf8;
由于数据库中表的字符集缺省情况下采用数据库的字符集,所以在创建表时不需要指定default character set;
2. 在JDBC的Connection URL后加上?useUnicode=true&characterEncoding=utf-8,url= “jdbc:mysql://127.0.0.1:3306/db_name?useUnicode=true&characterEncoding=utf8”;
3. 中文乱码问题当然可以通过修改MySQL的配置解决:
修改my.cnf(/etc/my.cnf)中默认的编码选项[mysqld]下添加default-charcter-set=utf8; mysql 5.5以上版本换成了character-set-server=utf8;
其它:
1. 尽量使用UTF-8字符集(网页,数据库…)
2. 命令行下插入汉字时:
mysql> set names utf8;
mysql> insert into test (name) values(‘张三’);
有用的链接:
http://dev.mysql.com/doc/refman/5.0/en/charset-applications.html
http://down.chinaz.com/server/201111/1423_1.htm