MySQL 字符集 utf8mb4

MySQL在5.5.3之后增加了這個utf8mb4的編碼狡门,mb4就是most bytes 4的意思舞竿,專門用來兼容四字節(jié)的unicode廓八。好在utf8mb4是utf8的超集奉芦,除了將編碼改為utf8mb4外不需要做其他轉(zhuǎn)換。當然剧蹂,為了節(jié)省空間声功,一般情況下使用utf8也就夠了。

二宠叼、內(nèi)容描述

那上面說了既然utf8能夠存下大部分中文漢字,那為什么還要使用utf8mb4呢? 原來mysql支持的 utf8 編碼最大字符長度為 3 字節(jié)先巴,如果遇到 4 字節(jié)的寬字符就會插入異常了其爵。三個字節(jié)的 UTF-8 最大能編碼的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文種平面(BMP)伸蚯。也就是說摩渺,任何不在基本多文本平面的 Unicode字符,都無法使用 Mysql 的 utf8 字符集存儲剂邮。包括 Emoji 表情(Emoji 是一種特殊的 Unicode 編碼摇幻,常見于 ios 和 android 手機上),和很多不常用的漢字挥萌,以及任何新增的 Unicode 字符等等绰姻。

三、問題根源

最初的 UTF-8 格式使用一至六個字節(jié)引瀑,最大能編碼 31 位字符狂芋。最新的 UTF-8 規(guī)范只使用一到四個字節(jié),最大能編碼21位憨栽,正好能夠表示所有的 17個 Unicode 平面帜矾。

utf8 是 Mysql 中的一種字符集,只支持最長三個字節(jié)的 UTF-8字符徒像,也就是 Unicode 中的基本多文本平面黍特。

Mysql 中的 utf8 為什么只支持持最長三個字節(jié)的 UTF-8字符呢?我想了一下锯蛀,可能是因為 Mysql 剛開始開發(fā)那會灭衷,Unicode 還沒有輔助平面這一說呢。那時候旁涤,Unicode 委員會還做著 “65535 個字符足夠全世界用了”的美夢翔曲。Mysql 中的字符串長度算的是字符數(shù)而非字節(jié)數(shù),對于 CHAR 數(shù)據(jù)類型來說劈愚,需要為字符串保留足夠的長瞳遍。當使用 utf8 字符集時,需要保留的長度就是 utf8 最長字符長度乘以字符串長度菌羽,所以這里理所當然的限制了 utf8 最大長度為 3掠械,比如 CHAR(100) Mysql 會保留 300字節(jié)長度。至于后續(xù)的版本為什么不對 4 字節(jié)長度的 UTF-8 字符提供支持注祖,我想一個是為了向后兼容性的考慮猾蒂,還有就是基本多文種平面之外的字符確實很少用到。

要在 Mysql 中保存 4 字節(jié)長度的 UTF-8 字符是晨,需要使用 utf8mb4 字符集肚菠,但只有 5.5.3 版本以后的才支持(查看版本: select version();)。我覺得罩缴,為了獲取更好的兼容性蚊逢,應(yīng)該總是使用 utf8mb4 而非 utf8. 對于 CHAR 類型數(shù)據(jù)层扶,utf8mb4 會多消耗一些空間,根據(jù) Mysql 官方建議烙荷,使用 VARCHAR 替代 CHAR镜会。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市终抽,隨后出現(xiàn)的幾起案子稚叹,更是在濱河造成了極大的恐慌,老刑警劉巖拿诸,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異塞茅,居然都是意外死亡亩码,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門野瘦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來描沟,“玉大人,你說我怎么就攤上這事鞭光±袅” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵惰许,是天一觀的道長席覆。 經(jīng)常有香客問我,道長汹买,這世上最難降的妖魔是什么佩伤? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮晦毙,結(jié)果婚禮上生巡,老公的妹妹穿的比我還像新娘。我一直安慰自己见妒,他們只是感情好孤荣,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著须揣,像睡著了一般盐股。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上返敬,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天遂庄,我揣著相機與錄音,去河邊找鬼劲赠。 笑死涛目,一個胖子當著我的面吹牛秸谢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播霹肝,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼估蹄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沫换?” 一聲冷哼從身側(cè)響起臭蚁,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讯赏,沒想到半個月后垮兑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡漱挎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年系枪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磕谅。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡私爷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出膊夹,到底是詐尸還是另有隱情衬浑,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布放刨,位于F島的核電站工秩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏进统。R本人自食惡果不足惜拓诸,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望麻昼。 院中可真熱鬧奠支,春花似錦、人聲如沸抚芦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叉抡。三九已至尔崔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間褥民,已是汗流浹背季春。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留消返,地道東北人载弄。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓耘拇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宇攻。 傳聞我的和親對象是個殘疾皇子惫叛,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 字符是用戶可以讀寫的最小單位嘉涌。計算機所能支持的字符組成的集合,就叫做字符集夸浅。字符集通常以二維表的形式存在仑最。二維表的...
    劉惜有閱讀 8,116評論 2 14
  • 1、問題:mysql 遇到某些中文插入異常最近有同學(xué)反饋了這樣一個問題: 上述語句在腳本中 load 入庫的時候會...
    kanasu閱讀 2,827評論 1 5
  • 1. ASCII ??我們知道,計算機內(nèi)部是通過二進制數(shù)據(jù)進行操作的损敷,所有的信息最終都會轉(zhuǎn)換為一個二進制值葫笼,二進制...
    騎著烏龜去看海閱讀 1,659評論 0 4
  • 昨天清晨,我和老公準備去公園晨練拗馒,剛走到小區(qū)的北門路星,突然從身后傳來一個女孩帶著哭音的喊聲:“不要你送你偏要送,又要...
    欣然_bd23閱讀 236評論 9 20
  • 碧藍的愛琴海诱桂,帶著柔和的海風(fēng)摩挲著巴爾干半島南部的一片沃土洋丐。這片土地醞釀了輝煌的古希臘文明。古希臘不僅是歐洲文化的...
    老劉陪你讀書閱讀 1,861評論 9 30