MySQLのutf8真的是我们认识的utf8吗?

2021-08-01  本文已影响0人  一个好汉

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='成员表'"

参考
  1. 永远不要在MySQL中使用utf8,改用utf8mb4
    MySQLのutf8真的是我们认识的utf8吗?
上一篇下一篇

猜你喜欢

热点阅读