MySQL的“utf8”實(shí)際上不是真正的UTF-8
所有在使用“utf8”的MySQL和MariaDB用戶都應(yīng)該改用“utf8mb4”
原因
MySQL的“utf8”是一種“專屬的編碼”,它能夠編碼的Unicode字符并不多
“utf8”只支持每個(gè)字符最多三個(gè)字節(jié),而真正的UTF-8是每個(gè)字符最多四個(gè)字節(jié)。
MySQL的“utf8mb4”是真正的“UTF-8”
so in mysql
utf8mb4 = UTF-8
如何查看編輯數(shù)據(jù)庫編碼
-- 查看數(shù)據(jù)庫默認(rèn)編碼
show variables like 'character_set_database';
-- 查看建表語句 以及編碼
show create table member;
-- 修改數(shù)據(jù)庫的編碼格式
alter database test character set utf8mb4;
-- 修改數(shù)據(jù)表格編碼格式
alter table member character set utf8mb4;
查看創(chuàng)建表ddl語句 結(jié)果:
member,"CREATE TABLE `member` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一標(biāo)識(shí)',
`name` varchar(20) CHARACTER SET utf8 NOT NULL COMMENT '名稱',
`gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',
`gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '修改時(shí)間',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='成員表'"
參考
-
永遠(yuǎn)不要在MySQL中使用utf8,改用utf8mb4
MySQLのutf8真的是我們認(rèn)識(shí)的utf8嗎?
