utf-8与uft-8 mb4的区别
墨初 互联知识 445阅读
在我们新建mysql数据库的时候,需要指定数据库的字符集。通常情况下我们都会选择utf-8这个字符集,但从mysql5.5.3版本后新增了一个utf-8 mb4的编码集。下面我们就介绍一下utf8与utf8mb4编码集的区别。
utf8字符集的解释
utf8是Mysql中的一种字符集,只支持最长三个字节的UTF-8字符,也就是Unicode中的基本多文本平面。
在一些网站的编码格以及数据库的类型中使用的频率是最多。
utf8mb4的字符集解释
utf8mb4的编码中mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。可以简单的理解utf8mb4是目前最大的一个字符编码,支持任意文字。
注意:utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。
注意:为了节省空间,一般情况下使用utf8也就够了。
utf8字符集与utf8mb4字符集的区别
1、存储字符范围:
utf-8:支持Unicode字符集中的基本多语言平面(BMP)范围内的字符,即0x0000 - 0xFFFF范围内的字符。
utf8mb4:支持Unicode字符集的全部字符,包括BMP范围和辅助平面字符,范围是0x0000 - 0x10FFFF。
2、存储方式:
utf-8:使用1至4个字节来表示字符,根据字符的不同而变化。
utf8mb4:使用1至4个字节来表示字符,同样根据字符的不同而变化。
3、适用范围:
utf-8:适用于大部分应用,但对于需要存储辅助平面字符(如Emoji表情)的情况不够。
utf8mb4:适用于需要存储辅助平面字符的场景,如支持Emoji等。
4、存储空间
由于 utf8mb4需要更多的字节来存储字符,所以在一些数据库中(如MySQL)中,utf8mb4会占用更多的存储空间
PS:utf-8与utf8mb4都是用于表示Unicode字符集中的字符,但由于utf8mb4支持更广泛的字符范围,适用于需要存储特殊字符的情况。