先來看一段MySQL的官方文檔:
-
utf8mb4: A UTF-8 encoding of the Unicode character set using one to four bytes per character.
- 翻譯(utf8mb4:Unicode字符集的UTF-8編碼,每個字符使用1-4個字節)
-
utf8mb3: A UTF-8 encoding of the Unicode character set using one to three bytes per character.
- 翻譯(utf8mb3:Unicode字符集的UTF-8編碼,每個字符使用一到三個字節)
-
utf8: An alias for utf8mb3.
- 翻譯(utf8:的別名 utf8mb3)
mb4即 most bytes 4,使用4個字節來表示完整的UTF-8。而MySQL中的utf8是utfmb3,只有三個字節,不能表達全部的UTF-8(比如emoji表情)。
官方文檔給出這么一段Note
注意
該utf8mb3字符集已被棄用,你應該期待它在未來的MySQL版本中刪除。請utf8mb4改用。
盡管 utf8目前是的別名 utf8mb3,但在某個時候 utf8有望成為對 utf8mb4。
為避免對的含義含糊不清utf8,請考慮utf8mb4為字符集引用而不是顯式指定 utf8。
所以推薦使用utf8mb4。