utf8與utf8mb4的區別

2022-09-02 09:06:09 字數 529 閱讀 5778

utf-8 編碼是一種變長的編碼機制,可以用1~4個位元組儲存字元。

因為歷史遺留問題,mysql 中的 utf8 編碼並不是真正的 utf-8,而是閹割版的,最長只有3個位元組。當遇到佔4個位元組的 utf-8 編碼,例如 emoji 字元或者複雜的漢字,也就是我們通常在聊天時發的小黃臉表情,會導致儲存異常。

從 5.5.3 開始,mysql 開始用 utf8mb4 編碼來實現完整的 utf-8,其中 mb4 表示 most bytes 4,最多占用4個位元組,用來相容四個位元組的unicode(萬國碼)。utf8mb4是utf8的乙個擴充套件。從 8.0 之後,將會在某個版本開始用 utf8mb4 作為預設字元編碼。

簡單總結:

1、mysql的 utf8mb 是真正的utf-8,最多占用4個位元組

。 2、mysql的utf8是一種「專屬的編碼」,最多可占用3個位元組,能夠編碼的unicode字元並不多

如果正在使用mysql或者mariadb ,不要用utf8編碼,改用utf8mb4,這裡提供乙個指南,用於將現有資料庫的字元編碼從utf8轉成utf8mb4

utf8和utf8mb4的區別

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

utf8和utf8mb4的區別

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

utf8和utf8mb4的區別

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