1.先看部分字符集
show variables like ‘character%’;
解释一下:
character_set_client //客户端字符集
character_set_connection //连接字符集
character_set_database //mysql数据库字符集
character_set_filesystem //文件系统字符集
character_set_results //结果集字符集
character_set_server //服务器字符集
character_set_system //系统字符集
2.重点:
mysql有4个粒度不同的字符集和比较规则:
1、服务器级别
2、数据库级别
3、表级别
4、属性级别
通常我们作为开发人员,一般情况下只会设置数据库、表、属性级别,恰恰就是因为这样,会导致一些意想不到的情况发生,比如说,本地都跑的好好的,不会乱码,结果一推到测试环境,就出现了乱码,一时之间还真不知道哪里出了问题,其实就是因为这个四个粒度之间设置的字符集没有统一导致的。
3.查询和验证方式
– 服务器级别
show variables like ‘character_set_server%’;
show variables like ‘character_set_server%’;
– 服务器比较规则
show variables like ‘collation_server%’;
– 数据库级别
show variables like ‘character_set_database%’;
– 数据库比较规则
show variables like ‘collation_database%’;
表和属性级别就不列举了。