字符集和比较规则
1. 字符集

#1.1 utf8 与 utf8mb4 #utf8字符集表示一个字符需要使用1~4个字节,但是我们常用的一些字符使用1~3个字节就可以表示了。 #而字符集表示一个字符所用的最大字节长度,在某些方面会影响系统的存储和性能,所以设计MySQL的设计者 #定义了两个概念: #utf8mb3:阉割过的utf8字符集,只使用1~3个字节表示字符。 #utf8mb4:正宗的utf8字符集,使用1~4个字节表示字符。 #在MySQL中utf8是utf8mb3的别名,所以之后在MySQL中提到的utf8就意味着使用1~3个字节来表示一个字符。 #如果哦使用4个字节编码一个字符的情况,比如存储一些:emoji表情,那就使用utf8mb4。
#通过如下指令可以查看MySQL支持的字符集:
#SHOW CHARSET;
#或
#SHOW CHARACTER SET;

2. 比较规则
#2. 比较规则 #例如:排序就会用到规则,表字段值有:tom tim 这样的数据,排序操作,会根据什么规则来排序, #这里的规则就是比较规则,可以这样理解一下。 #MySQL版本一共支持41中字符集,其中Default collation列表示这种字符集中一种默认的比较规则,里面包含 #着该比较规则主要作用于那种语音,比如:utf8_polish_ci表示以波兰语的规则比较, #utf8_spanish_ci是以西班牙语的规则比较,utf8_general_ci是一种通过的比较规则。

#查看utf8相关的比较规则
SHOW COLLATION LIKE 'utf8%';
#查看服务器的字符集和比较规则
SHOW VARIABLES LIKE '%_server';
#查看数据库的字符集和比较规则
SHOW VARIABLES LIKE '_database';
#查看具体数据库的字符集
SHOW CREATE DATABASE dbtest1;
#修改具体数据库的字符集
ALTER DATABASE dbtest1 DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

3. 请求到响应过程中字符集的变化

-----------

浙公网安备 33010602011771号