MySQL的“utf8”实际上不是真正的UTF-8
所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”
原因
MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多
“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。
MySQL的“utf8mb4”是真正的“UTF-8”
so in mysql
utf8mb4 = UTF-8
如何查看编辑数据库编码
-- 查看数据库默认编码
show variables like 'character_set_database';
-- 查看建表语句 以及编码
show create table member;
-- 修改数据库的编码格式
alter database test character set utf8mb4;
-- 修改数据表格编码格式
alter table member character set utf8mb4;
查看创建表ddl语句 结果:
member,"CREATE TABLE `member` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一标识',
`name` varchar(20) CHARACTER SET utf8 NOT NULL COMMENT '名称',
`gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='成员表'"
参考
-
永远不要在MySQL中使用utf8,改用utf8mb4
MySQLのutf8真的是我们认识的utf8吗?
网友评论