utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
来源:互联网 发布:兰州网络教育学生平台 编辑:程序博客网 时间:2024/05/17 22:13
最近做项目遇到APP评论中有 emoji 表情符号,结果导致插入 MySQL 数据库失败,找到 MySQL 官方相关内容,这里斗胆翻译一下。在翻译过程中有些不明白的地方,如BMP、collation等,都找到官方文档,给出了链接,大家可以链接参考。
原文:https://dev.mysql.com/doc/refman/5.6/en/charset-unicode-utf8mb4.html?spm=5176.2020520165.110.53.AlPmXp
The utf8mb4 Character Set (4-Byte UTF-8 Unicode Encoding)
utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
UTF-8字符集每个字符最多使用三个字节,并且只包含基本多语言面 (Basic Multilingual Plane,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笑)
文章出处:[无知人生,记录点滴](http://blog.csdn.NET/testcs_dn)
==============欢迎关注我的个人微信订阅号(微wx笑)==========
- utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
- MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
- 字符集编码浅谈:Unicode、UTF-8
- unicode字符集和UTF-8编码
- Unicode 字符集及UTF-8 UTF-16编码
- java 字符集与编码 unicode、utf-8、utf-16、gbk
- unicode Ascii gbk字符集和utf-8 utf-16编码
- ANSI(字符集) and Unicode(字符集) and UTF-8(编码Unicode字符集)
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码介绍
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- 字符集编码:ASCII 、GB2312、GBK、GB18030、UTF-8、unicode
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、Unicode、UTF-8字符集编码详解
- 理解字符集、字符编码、ASCII、Unicode、UTF-8
- Linux下的简单进度条实现
- jQuery的deferred对象详解
- StringBuffer和StringBuilder的区别
- 按键喂狗
- Java8中对Lambda表达式中方法参数的类型推断(二)
- utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
- Linux学习 九单元练习题
- android Dalvikvm GC 多次运行 引起UI主线程卡顿问题
- 一星期Linux学习
- ZOJ2971
- 用python写一个简单的爬虫保存在json文件中
- eclipse 比较两个文本文件的 内容
- ArrayList和LinkedList add和remove方法的比较
- 【学习笔记】机器学习-K均值(k-means)