如果你希望讓你的網(wǎng)站或者 App 支持 Emoji,那么在初次設(shè)置 MySQL 時,有一些細(xì)節(jié)你需要知道。
Emoji 字符的特殊之處是,在存儲時,需要用到 4 個字節(jié)。而 MySQL 中常見的 utf8 字符集的 utf8_general_ci
這個 collate 最大只支持 3 個字節(jié)。所以為了能夠存儲 Emoji,你需要改用 utf8mb4
字符集。
在創(chuàng)建表時,用類似這樣的語句:
CREATE TABLE `tbl` (...) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
對 utf8mb4
字符集的支持是 MySQL 5.5 的新功能,所以你需要確保你使用的 MySQL 版本至少是 5.5。基本上,2014 年以后的新項(xiàng)目都應(yīng)該直接上 5.6 了。
在啟用了 utf8mb4
字符集之后,備份和導(dǎo)入時就不能再用默認(rèn)參數(shù)了。
用 mysqldump 備份時,需要加入:
mysqldump --default-charater-set=utf8mb4
而在恢復(fù)備份或通過程序連接時,需要在每次連接打開之后發(fā)送下面這條 SQL 指令:
SET CHARSET utf8mb4