MySQL中的utf8并不是真正意义上的utf- 8,因为默认情况下他表示的是utf8mb3。
如果你看过mysql的官方文档的话,其实可以发现,在官网中有一段醒目的提醒说utf8mb3将会在未来的版本中删除,
并且建议用户优先使用utf8mb4,而不是utf8
在mysql中,utf8是utf8mb3的简称,这种字符集只支持码位在0到65535之间的BMP字符。
而一些生僻字、emoji表情等这些补充字符都不在支持范围内,存储这样的字符会报错。
因为utfmb3存在这样的缺陷,所以MySQL在5.5.3之后增加了utf8mb4的编码,这是一个可以支持补充字符的字符集
所以,建议创建MySQL表的时候,为了考虑到兼容性,使用utf8mb4,而不是utf8,更不是utf8mb3。