utf-8
和 utf8mb4
是两种字符集编码,主要用于表示Unicode字符集中的字符。它们之间的区别如下:
存储字符范围:
utf-8
:支持Unicode字符集中的基本多语言平面(BMP)范围内的字符,即0x0000 - 0xFFFF范围内的字符。utf8mb4
:支持Unicode字符集的全部字符,包括BMP范围和辅助平面字符,范围是0x0000 - 0x10FFFF。
存储方式:
utf-8
:使用1至4个字节来表示字符,根据字符的不同而变化。utf8mb4
:使用1至4个字节来表示字符,同样根据字符的不同而变化。
适用范围:
utf-8
:适用于大部分应用,但对于需要存储辅助平面字符(如Emoji表情)的情况不够。utf8mb4
:适用于需要存储辅助平面字符的场景,如支持Emoji等。
存储空间:
- 由于
utf8mb4
需要更多的字节来存储字符,所以在一些数据库中(如MySQL)中,utf8mb4
会占用更多的存储空间。
- 由于
总之,utf-8
和 utf8mb4
都是用于表示Unicode字符集中的字符,区别在于 utf8mb4
支持更广泛的字符范围,适用于需要存储特殊字符(如Emoji)的情况。