300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > utf8mb4 字符集(4字节 UTF-8 Unicode 编码)

utf8mb4 字符集(4字节 UTF-8 Unicode 编码)

时间:2020-01-10 16:13:24

相关推荐

utf8mb4 字符集(4字节 UTF-8 Unicode 编码)

最近做项目遇到APP评论中有 emoji 表情符号,结果导致插入 MySQL 数据库失败,找到 MySQL 官方相关内容,这里斗胆翻译一下。在翻译过程中有些不明白的地方,如BMP、collation等,都找到官方文档,给出了链接,大家可以链接参考。

原文:/doc/refman/5.6/en/charset-unicode-utf8mb4.html?spm=5176.55.110.53.AlPmXp

The utf8mb4 Character Set (4-Byte UTF-8 Unicode Encoding)

utf8mb4 字符集(4字节 UTF-8 Unicode 编码)

UTF-8字符集每个字符最多使用三个字节,并且只包含基本多语言面 (BasicMultilingualPlane,BMP)字符。

utf8mb4 字符集使用最多每字符四个字节支持补充字符:

对于 BMP字符 UTF8 和 utf8mb4 具有相同的存储特性:相同的代码值,相同的编码,相同的长度。对于补充字符,UTF8不能储存所有的字符,而utf8mb4需要四个字节来存储它。因为UTF8不能存储所有的字符,你的 utf8 列中都没有补充字符,因此从旧版本的MySQL UTF8升级数据时不用担心字符转换或丢失数据。

utf8mb4 是 utf8 的超集,所以像下面的连接字符串操作,其结果字符集是 utf8mb4 排序规则(一组规则,定义如何对字符串进行比较和排序)是 utf8mb4_col:

SELECT CONCAT(utf8_col, utf8mb4_col);

同样,下面的 WHERE 子句中的内容比较根据 utf8mb4_col 规则:

SELECT * FROM utf8_tbl, utf8mb4_tblWHERE utf8_tbl.utf8_col = utf8mb4_tbl.utf8mb4_col;

提示: 要使用 utf8mb4 节省空间,使用VARCHAR替换CHAR。否则,MySQL必须为使用utf8mb4字符集的列的每一个字符保留四字节的空间,因为其最大长度可能是四字节。例如,MySQL必须为一个使用utf8mb4字符集的 char(10)的列保留40字节空间。

相关阅读:

utf8_unicode_ci与utf8_general_ci的区别

====================文档信息=======================

版权声明:非商用自由转载-保持署名-注明出处

署名(BY) :testcs_dn(微wx笑)

文章出处:[无知人生,记录点滴](/testcs_dn)

==============欢迎关注我的个人微信订阅号(微wx笑)==========

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。