mysql 编码和汉字存储的纪录

前端之家收集整理的这篇文章主要介绍了mysql 编码和汉字存储的纪录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

MysqL 5.5 之前,UTF8 编码只支持1-3个字节,只支持BMP这部分的unicode编码区,BMP是从哪到哪?
戳这里 基本就是 0000 ~ FFFF 这一区。

MysqL 5.5 开始,可支持4个字节UTF编码utf8mb4,一个字符最多能有4字节,所以能支持更多的字符集。

utf8mb4 is a superset of utf8

tf8mb4兼容utf8,且比utf8能表示更多的字符。

至于什么时候用,看你做的什么项目了。。。
在做移动应用时,会遇到IOS用户在文本的区域输入emoji表情,如果不做一定处理,就会导致插入数据库异常。

MysqL 5.0 以上的版本:

1、一个汉字占多少长度与编码有关:

UTF-8:一个汉字 = 3个字节,英文是一个字节
GBK: 一个汉字 = 2个字节,英文是一个字节
2、varchar(n) 表示n个字符,无论汉字和英文,MysqL都能存入 n 个字符,仅实际字节长度有所区别。

3、MysqL检查长度,可用sql语言

SELECT LENGTH(fieldname) FROM tablename

意思就是:

  1. 一个varchar存汉字需要使用三个字段在utf8和utf8mb4编码表的情况下。

  2. 如果需要存储emoji表情的需求,新表的默认编码方式应该写为utf8mb4。另外提一点在最新发布的MysqL8.0里面,默认编码方式已经是utf8mb4了。

  3. 在utf8和utf8mb4中 varchar(n)这个n是字符,所见即所得,一个a是一个字符一个?也是一个字符 不过就是a这个字符是1个字节 哈这个字符是3个字节 而?这个字符是4个字节表示罢了

猜你在找的程序笔记相关文章