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也就夠了。二 內容描述 既...