utf8与utf8mb4的区别


  新项目只考虑utf8mb4

  UTF-8 编码是一种变长的编码机制,可以用1~4个字节存储字符。

  因为历史遗留问题,MySQL 中的 utf8 编码并不是真正的 UTF-8,而是阉割版的,最长只有3个字节。当遇到占4个字节的 UTF-8 编码,例如 emoji 字符或者复杂的汉字,也就是我们通常在聊天时发的小黄脸表情,会导致存储异常。

  从 5.5.3 开始,MySQL 开始用 utf8mb4 编码来实现完整的 UTF-8,其中 mb4 表示 most bytes 4,最多占用4个字节,用来兼容四个字节的Unicode(万国码)。utf8mb4是utf8的一个扩展。从 8.0 之后,将会在某个版本开始用 utf8mb4 作为默认字符编码。

  简单总结:

  1、MySQL的 utf8mb 是真正的UTF-8,最多占用4个字节

。 2、MySQL的utf8是一种“专属的编码”,最多可占用3个字节,能够编码的Unicode字符并不多

  如果正在使用MySQL或者MariaDB ,不要用utf8编码,改用utf8mb4,这里提供一个指南,用于将现有数据库的字符编码从utf8转成utf8mb4

  https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM