mysql字符集utf8 和utf8mb4編碼問題

    最近看了一篇文章是關於Mysql中utf-8編碼問題的,咱們在Mysql中用到的utf8實際上不是真正的 UTF-8,在Mysql中utf8mb4纔是真正的UTF-8。mysql

    在有些地方看到說utf8mb4相比於utf8是爲了解決emoji(就是咱們聊天的時候笑臉表情)問題,感受這種說法對可是不徹底對。utf8mb4至關於utf8的一個擴展,出現utf8mb4是由於如今Mysql中的utf8已經不能知足咱們對字符編碼的需求了。android

    Mysql從4.1 版本開始支持 UTF-8,最大字符長度爲 3 字節,三個字節的 UTF-8 最大能編碼的 Unicode 字符是 0xFFFF,也就是 Unicode 中的基本多文平面(BMP)。也就是說,任何不在基本多文平面的 Unicode字符,都沒法使用MySQL原有的 utf8 字符集存儲。這些不在BMP中的字符包括哪些呢?最多見的就是Emoji 表情(Emoji 是一種特殊的 Unicode 編碼,常見於 ios 和 android 手機上),和一些不經常使用的漢字,以及任何新增的 Unicode 字符等等。因而在MySQL5.5.3版本後就有了utf8mb4,它支持四個字節編碼在utf8消耗空間一些,可是它能夠支持跟多的字符。ios

    因此,在咱們最新設計數據庫的時候最好使用utf8mb4字符集,同時使用varchar代替char類型。sql

    

參考文章:數據庫

記住,永遠不要在MySQL中使用「utf8」編碼編碼

清官談mysql中utf8和utf8mb4區別.net

mysql字符集 utf8 和utf8mb4 的區別設計

相關文章
相關標籤/搜索