全面了解MySQLUTF8和utf8mb4之间的差异
MySQL添加编码后这utf8mb4 5.5.3,和MB4是大多数字节4的意义,这是专为四字节Unicode兼容。幸运的是,utf8mb4是utf8的超集,除了要utf8mb4编码不需要做其他的转换。当然,为了节省空间,utf8的一般的使用是足够的。
二、内容描述
就是说,由于UTF8可以节省大部分的汉字,为什么要用utf8mb4原UTF8编码编码的MySQL支持3字节的最大字符长度。如果我们遇到了4个字节宽的特点,我们将插入异常。最大三字节的UTF-8编码的Unicode字符是0xffff,Unicode的基本多文种平面(BMP)。也就是说,任何的Unicode字符不在基本多文本平面不可存放设置MySQL的UTF8字符。它包括Emoji表情(表情符号是一种特殊的Unicode编码,常用于iOS和Android手机),和很多常用的汉字,以及任何额外的Unicode字符。
三,问题的根源
原来的UTF-8格式使用一个六字节,和最大可编码31位字符的UTF-8,新规范只使用一个四字节,并且最大可编码21位,仅能代表所有17个Unicode的飞机。
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字符的字节长度提供支持,我想一个向后的兼容性考虑,外有基本多文种平面的性格真的很少使用。
在MySQL中节省4字节长度UTF-8字符,你需要用utf8mb4字符集,但只有在5.5.3版本支持。(查看版本:选择版本())。我认为,为了获得更好的兼容性,我们应该总是使用utf8mb4不是UTF8 ..对于字符型数据,utf8mb4会消耗更多的空间。根据MySQL的官方推荐,VARCHAR代替焦炭。
以上是一个全面的了解,在MySQL UTF8和utf8mb4之间的差异,这是所有萧边分享你的内容。我希望能给你一个参考,希望你能支持它。