看到utf8mb4,不知道这个和utf8的关系,特地查了查,在此做个记录。
mb4,就是"most bytes 4"的意思,它是用来兼容4字节的Unicode。在MySQL-5.5.3版本后就增加了这个utf8mb4编码。
utf8最长支持三个字节的字符,就是Unicode中的基本多文平面。在这之外的字符utf8并不能支持,比如Emoji表情。因此,如果需要保存4个字节的utf8字符,就需要使用utf8mb4字符集。
可以看出,utf8mb4其实就是utf8字符集的超集。使用utf8的都可以讲字符集修改为utf8mb4。对于char类型的数据,使用utf8mb4需要更多的空间,因此,MySQL官方建议使用varchar代替char。
所以,为了能够更好的兼容,我们应该习惯使用utf8mb4,当然,这必须得是5.5.3及以后的版本。