Mysql中,utf8mb4與utf8字符集的區別

2021-08-01 12:17:11 字數 1269 閱讀 5949

mysql

在5.5.3

之後增加了這個

utf8mb4

的編碼,

mb4就是

most bytes 4

的意思,專門用來相容四位元組的

unicode

。通俗理解,

utf8mb4就

是utf8

的超集,除了將編碼改為

utf8mb4

外不需要做其他轉換。當然,為了節省空間,一般情況下

utf8字符集

也足夠使用。

mysql

支援的utf8 

編碼最大字元長度為

3 位元組,如果遇到

4 位元組的寬字元就會插入異常了。三個位元組的

utf-8 

最大能編碼的

unicode 

字元是0xffff

,也就是

unicode 

中的基本多文種平面(

bmp)。也就是說,任何不在基本多文字平面的

unicode

字元,都無法使用

mysql 

的utf8 

字符集儲存。包括

emoji 表情(

emoji 

是一種特殊的

unicode 

編碼,常見於

ios 

和android 

手機上),和很多不常用的漢字,以及任何新增的

unicode 

字元等等。

所以要在

mysql 

中儲存4 

位元組長度的

utf-8 

字元,需要使用

utf8mb4 

字符集,但只有

5.5.3

版本以後的才支援

。我覺得,為了獲取更好的相容性,應該總是使用

utf8mb4 

而非utf8. 

對於char 

型別資料,

utf8mb4 

會多消耗一些空間,根據

mysql 

官方建議,使用

varchar 

替代char。

mysql字符集如圖所示:

MySQL中utf8與utf8mb4的區別

mysql在5.5.3之後增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來相容四位元組的unicode。utf8mb4是utf8 的超集,除了將編碼改為utf8mb4外不需要做其他轉換。當然,為了節省空間,一般情況下使用utf8也就夠了。那上面說了既然utf8能夠存...

MySQL中字符集 utf8mb4與utf8的區別

今早發現mysql 中無法儲存emoji表情,查詢資料後發現是字符集的問題。原因 emoji對應的unicode編碼不在utf8對應的unicode分組平面內,無法直接用mysql的utf8儲存emoji編碼格式字元。解決方法 將資料庫預設字符集由utf8 更改為utf8mb4,對應的表預設字符集也...

MySQL中utf8和utf8mb4編碼格式的區別

一 簡介 mysql在5.5.3之後增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來相容四位元組的unicode。好在utf8mb4是utf8的超集,除了將編碼改為utf8mb4外不需要做其他轉換。當然,為了節省空間,一般情況下使用utf8也就夠了。二 內容描述 既...