MySQLのutf8真的是我們認(rèn)識(shí)的utf8嗎?

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

參考
  1. 永遠(yuǎn)不要在MySQL中使用utf8,改用utf8mb4
    MySQLのutf8真的是我們認(rèn)識(shí)的utf8嗎?
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容