對于Mysql也算是比較熟悉的了,一般在做項目的時候會默認的把數(shù)據(jù)庫的字符集設(shè)置為UTF-8,GBK、或GBK2312,后來為了前后端以及一些js的文件編碼格式一致,基本上都統(tǒng)一為了UTF-8格式了。
那么Mysql具體支持哪些字符集格式,我們可以通過登錄Mysql數(shù)據(jù)庫后,使用一行命令進行查詢,show charset;
我這里使用的是Navicat Premium在數(shù)據(jù)庫進行查詢的,也可以通過終端命令行進行對應(yīng)的查詢,查詢出來41中字符集。
可以通過查詢中看到針對UTF-8的字符集還有兩種不同的字符集,分別為utf-8和utf8mb4,那么這兩種字符集有什么區(qū)別呢。
這里我們就需要先簡單說下UTF,UTF(Unicode Tranformation Format)是Unicode的其中一個使用方式,即把Unicode轉(zhuǎn)做某種格式的意思,包括UTF-8,UTF-16,UTF-32。
UTF-8 是一種變長編碼方式,用1到6個字節(jié)編碼Unicode字符,又稱萬國碼,那么UTF-8MB4 是對 UTF-8 的擴展,它支持更廣泛的字符集范圍,也就是說UTF-8MB4 可以表示 Unicode 字符集中的所有字符,并且針對一些不常見的輔助符號和 Emoji等都是支持的,在大多數(shù)情況下UTF-8是足夠使用的,少數(shù)的情況中財會用到UTF-8mb4。
關(guān)于mysql對Emoji表情的支持可以參考我同事寫的另一篇文章,除此之外在圖上還可以看到UTF字符集有utf16 utf32,UTF-16使用一個或兩個未分配的16位代碼單元的序列對Unicode代碼點進行編碼。UTF-32即將每一個Unicode代碼點表示為相同值的32位整數(shù)。