当前位置: 首页 > 面试题库 >

MySQL中utf8mb4和utf8字符集有什么区别?

云飞翮
2023-03-14
问题内容

utf8mb4MySQL中的utf8字符集有什么区别? __

我已经知道 ASCIIUTF-8UTF-16UTF-32 编码;但是我很好奇知道utf8mb4编码组与 MySQL
Server中
定义的其他编码类型有什么区别。

使用utf8mb4而不是有什么特别的好处/提议utf8吗?


问题答案:

UTF-8是可变长度编码。对于UTF-8,这意味着存储一个代码点需要1-4个字节。但是,MySQL的编码称为“
utf8”(别名为“ utf8mb3”),每个代码点最多只能存储三个字节

因此,字符集“ utf8” /“ utf8mb3”不能存储所有Unicode代码点:它仅支持范围0x000到0xFFFF,这被称为“
基本多语言平面
”。另请参见Unicode编码比较。

这是MySQL文档必须说的(同一页面的先前版本):

名为utf8 [/ utf8mb3]的字符集每个字符最多使用三个字节,并且仅包含BMP字符。从MySQL
5.5.3开始,utf8mb4字符集每个字符最多使用四个字节,支持补充字符:

  • 对于BMP字符,utf8 [/ utf8mb3]和utf8mb4具有相同的存储特征:相同的代码值,相同的编码,相同的长度。

  • 对于补充字符, utf8 [/ utf8mb3]根本无法存储该字符 ,而utf8mb4需要四个字节来存储它。由于utf8 [/
    utf8mb3]根本无法存储字符,因此utf8 [/ utf8mb3]列中没有任何补充字符,并且在从较早版本的utf8 [/
    utf8mb3]数据升级时,您无需担心转换字符或丢失数据的麻烦。 MySQL的。

因此,如果您希望您的列支持存储BMP之外的字符(并且通常希望这样做),例如emoji,请使用“
utf8mb4”。另请参阅实际使用中最常见的非BMP
Unicode字符是什么?。



 类似资料:
  • MySQL中的和字符集有什么区别? 我已经知道ASCII、UTF-8、UTF-16和UTF-32编码;但是我很想知道组编码与MySQL Server中定义的其他编码类型有什么区别。 使用而不是有什么特别的好处/建议吗?

  • 我刚刚将我的mysql数据库从utf8转换为utf8mb4,以便支持Emojis,但现在我有一个编码问题。如果我用php打印文本,通常会显示特殊字符,但它们会在数据库中保存为LATIN1ü 我遵循这个指南https://mathiasbynens.be/notes/mysql-utf8mb4 在php中,我在建立连接后设置了这样的字符集 在转换之前,ä被保存为ä,ö被保存为ö等等。 现在它:ü-

  • 本文向大家介绍全面了解mysql中utf8和utf8mb4的区别,包括了全面了解mysql中utf8和utf8mb4的区别的使用技巧和注意事项,需要的朋友参考一下 一、简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,

  • MySQL中模式CHARSET VS表CHARSET VS列CHARSET有什么区别? 当我将表的字符集更改为utf8时,我可以在列中使用utf8mb4字符集吗? 谢谢

  • 在我的wordpress站点中,数据库(mysql)已经升级,以前的表字符集是utf8mb4,但现在变成utf8,它将不支持utf8mb4。因此,在我的wp配置文件中,我将字符集更改为utf8。 但我得到了这样的错误 http错误500

  • 在步骤5.7->8.0.23中从5.6->5.7->8.0.23升级mysql时,我收到一个警告: 在'mysql-schema的默认字符集:utf8'中,'mysql'是什么意思?是Innodb吗?