首页 > Mysql > mysql 为什么存微信昵称带图标会报错?uft8,uft8mb4区别

mysql 为什么存微信昵称带图标会报错?uft8,uft8mb4区别

2025-01-10 10:33:15

当存储微信昵称带图标的内容时,使用utf8编码报错,主要是因为微信昵称中的图标通常属于需要 4 字节编码的字符,超出了utf8utf8mb3)的编码范围,导致数据无法正确存储,从而引发报错。而utf8mb4能够支持这些 4 字节字符的存储,可以正确存储微信昵称中的图标等特殊字符。

字符编码范围

 

  • utf8实际上是utf8mb3,它最多只能使用 3 个字节来存储一个字符,能够支持大部分常用的字符,涵盖了基本的拉丁字母、汉字等,但不包括一些较新的 Unicode 字符和表情符号等。
  • utf8mb4能够使用 4 个字节来存储一个字符,支持完整的 Unicode 字符集,包括各种表情符号、生僻汉字、一些特殊的符号等所有 Unicode 字符。

存储空间

 

  • 对于存储相同的非 4 字节字符时,utf8utf8mb4占用空间基本相同。
  • 当存储需要 4 字节编码的字符时,utf8无法存储,而utf8mb4每个字符会占用 4 个字节的存储空间,相比utf8存储某些字符会占用更多空间。

性能

 

  • 在进行字符处理和查询等操作时,如果表中存储的都是utf8能够表示的字符,utf8的性能可能会略高一些,因为它处理的字节数相对较少。
  • 但如果涉及到大量的 4 字节字符处理,utf8mb4虽然在存储和处理上会稍微复杂一些,但能正确处理和存储这些字符,不会出现数据截断等问题。

 

 
使用 Ctrl+D 可将网站添加到书签
收藏网站
扫描二维码
关注早实习微信公众号
官方公众号
Top