mysql字符的utf-8和utf8mb4

今天在看阿里巴巴的开发手册的时候,看到这样一条:

【参考】如果有国际化需求,所有的字符存储与标识,均以utf-8编码,注意字符统计函数的区别。说明:如果需要存储表情,那么选择utf8mb4来进行存储,注意它与utf-8编码的区别

utf8mb4是什么?
mb4即most bytes 4,是utf-8的超集,并完全兼容utf-8,能够用4个字节存储更多的字符,是四字节的utf-8编码。可以用来存储emoji表情和一些不常用的汉字,和一些新增的unicode字符等。
在将uft-8(utf8mb3)升级为utf8mb4的时候,不需要担心是否会丢失数据内容,官方手册中是这么说的:

For a BMP character, utf8mb4 and utf8mb3 have identical storage characteristics: same code values, same encoding, same length.

For a supplementary character, utf8mb4 requires four bytes to store it, whereas utf8mb3 cannot store the character at all. When converting utf8mb3 columns to utf8mb4, you need not worry about converting supplementary characters because there will be none.

即,对于BMP字符,在utf-8和utf8mb4中的代码值、编码、长度都是相同的;对于补充字符,utf-8无补充字符,只有utf8mb4中有,所以不会有影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值