新项目只考虑utf8mb4
UTF-8 编码是一种变长的编码机制,可以用1~4个字节存储字符。
因为历史遗留问题,MySQL 中的 utf8 编码并不是真正的 UTF-8,而是阉割版的,最长只有3个字节。当遇到占4个字节的 UTF-8 编码,例如 emoji 字符或者复杂的汉字,也就是我们通常在聊天时发的小黄脸表情,会导致存储异常。
从 5.5.3 开始,MySQL 开始用 utf8mb4 编码来实现完整的 UTF-8,其中 mb4 表示 most bytes 4,最多占用4个字节,用来兼容四个字节的Unicode(万国码)。utf8mb4是utf8的一个扩展。从 8.0 之后,将会在某个版本开始用 utf8mb4 作为默认字符编码。
链接:https://blog.csdn.net/kikajack/article/details/84668924,https://blog.csdn.net/u010584271/article/details/80835547
。