Utf8 is a set of characters in Mysql, only support the three byte UTF-8 characters, Unicode is the Basic Multilingual plane.
MySQL UTF8为什么只支持最多三字节UTF-8字符我考虑一下,可能是因为MySQL刚刚开始开发,Unicode还没有辅助飞机,当时Unicode委员会仍在为世界做65535个字符,MySQL中的字符串长度是字符数而不是字节数。对于字符数据类型必须保留足够长度的字符串。当我们使用utf8的字符集,我们需要储备的长度是UTF8,最长的字符长度乘以字符串的长度,那么这个限制utf8的最大长度是3个字符,例如,(100)MySQL将保留300字节长度。为后续版本,为什么不是4 UTF-8字符的字节长度提供支持,我想一个向后的兼容性考虑,外有基本多文种平面的性格真的很少使用。