赞
踩
MySQL8默认使用utf8mb4\utf8mb4_0900_ai_ci。
在utf8 Unicode 编码下:每个字符的长度是不固定的,根据不同的字变化。
1个汉字为1个字符,常用汉字占3个字节,不常用的汉字占4个字节;
而MySQL的utf8又叫utf8mb3,存不了不常用的4个字节和emoji表情,所以新增了utf8mb4;
1个英文字母为1个字符,占1个字节;
utf8mb4是utf8的超集,对于3个字节的汉字,存储形式是一致的,所以可以直接升级
方法一:show variables like '%character%';
方法二:show variables like 'collation%';
show create database 库名
show create table 表名;
show full columns from 表名;
alter schema 库名 default character set utf8mb4 collate utf8mb4_0900_ai_ci;
alter table 表名 default character set utf8 collate utf8_bin;
alter table 表名 modify 字段名 字段属性 character set utf8mb4 collate utf8mb4_0900_ai_ci;
如果仅设置了字符集,系统会默认给校验集。
默认校验为utf8mb4_0900_ai_ci,大小写不敏感
utf8mb4_0900_bin,大小写敏感
默认校验集为utf8_general_ci,大小写不敏感
utf8_bin,大小写敏感
关于代码插入emoji表情报错,请检查 表编码 和 数据库连接编码 是否同时为utf8mb4。
tips: 要使用 utf8mb4 节省空间,用 VARCHAR
替换 CHAR
。否则,MySQL必须为使用 utf8mb4字符集的列的每一个字符保留四字节的空间,因为其最大长度可能是四字节。
例如,MySQL必须为一个使用 utf8mb4 字符集的 char(10)的列保留40字节空间。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。