在MySQL中,utf8mb4和utf8字符集有什么不同
我已经知道了ASCII 8,UTF-16和UTF-32编码;但是我很好奇utf8mb4编码组与MySQL服务器中定义的其他编码类型有什么不同。
使用 utf8**?**而不是有什么特别的好处/建议
发布于 2020-07-23 01:53:05
MySQL在5.5.3之后添加了这段utf8mb4代码,Mb4是最多字节4的意思,专门设计来兼容四个字节的Unicode。幸运的是,除了不需要将编码转换为UTF8MB4之外,UTF8MB4是UTF8的超集。当然,为了节省空间,一般使用UTF8就足够了。
原始的UTF-8格式使用1到6个字节,最多可以编码31个字符。最新的UTF-8规范仅使用一到四个字节,最多可编码21位,仅表示所有17个Unicode平面。UTF8是Mysql中的一个字符集,它只支持最多三个字节的UTF-8字符,这是Unicode中的基本多文本平面。
要在Mysql中保存4字节长的UTF-8字符,您需要使用UTF8MB4字符集,但只需使用5.5。支持3个版本后(查看版本:选择版本();)。我认为为了获得更好的兼容性,你应该总是使用UTF8MB4而不是UTF8。对于char类型的数据,UTF8MB4会消耗更多的空间,并且根据Mysql的官方推荐,使用VARCHAR而不是char。
在未在服务器配置中显式设置的情况下,在MariaDB utf8mb4中将其设置为默认字符集,因此使用COLLATE utf8mb4_unicode_ci。
Refer MariaDB CHARSET & COLLATE Click
CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;https://stackoverflow.com/questions/30074492
复制相似问题