mysql中有三个层次的字符集:
数据库字符集:该字符集设置所有表的默认字符集
表字符集:该字符集设置所有varchar、text等字段的字符集
字段字符集:可具体设置,可以让某个字段采用不同的字符集。
另外说明collation:该字符集用于字段级别的不同字符集之间的比较,在like操作、=操作、>操作 时有用。
建议让这三个字符集都相同,最好都设置成utf8,这样可以避免很多乱码、不能导入数据等头痛的问题。
否则,很容易出现这样的错误:
java.sql.SQLException: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'
混搭字符集之间不能正常比较。
另针对windows上的mysql用户:
my.ini可以设置两个字符集:
[mysql]
default-character-set=gb2312
[mysqld]
default-character-set=utf8
如果Mysql-Command-line-client有乱码出现,尝试修改第一个字符集,因为windows是默认用gb2312的!