MySQL中UTF8与UTF8mb4编码间的区别
发布时间
阅读量:
阅读量
一、区别
MySQL自5.5.3版起引入了支持更为广泛的编码方案——utf8mb4;其中' mb4'源自'MB'(Most Bytes)加上数字' 4';其主要目的便是兼容那些使用四字节字符表示的文字;值得注意的是,在这种情况下,默认使用的编码体系仍为UTF-8;因此,在转换过程中无需对现有数据进行额外处理即可无缝衔接;具体来说,在存储空间上可能会略有增加。
二、原因描述
虽然UTF-8足以容纳绝大多数中文字符,但为何还要采用utf8mb4呢?实际上MySQL对UTF-8编码的最大字符长度限定为3个字节,遇到宽度超过3个字节的情况会导致异常。三个字节的最大编码范围覆盖到Unicode的基本多文种平面(BMP),即U+0000到U+FFFF;这意味着任何超出这一范围的文字都无法在MySQL中使用UTF-8存储。这些超出BMP范围的文字无法在MySQL中使用UTF-8存储;包括Emoji表情(Unicode中的特殊编码形式常见于iOS和Android设备上)以及其他一些不常用但仍在使用的文字等
三、问题根源
最初的标准UTF-8格式采用了从一到六个字节的编码方案。该编码方案能够准确表示多达31位字符。最新规范则仅采用从一到四个字节的压缩策略。新的优化版本精确支持最多21位字符,并完美覆盖了全部17个Unicode平面。
MySQ
全部评论 (0)
还没有任何评论哟~
