Unicode 和 UTF-8
Unicode是字符集,每一个字符都对应一个2/16进制的唯一编码,Unicode长度为2-4字节;
UTF-8是编码,根据Unicode重新编码一次,节省存储空间(英文1字节,中文3字节,最长6字节);
UTF-8mb4(UTF-8 more bytes 4)MySQL只支持3字节的UTF-8,UTF-8mb4就是支持4字节的UTF-8,如emoji表情就需要4字节的UTF-8;
Unicode转UTF-8规则(图片来自*):
通俗一点:
- 所有的英文字母还是保留
ASCII
的编码规则(1字节),即英文编码还是0-127,兼容ASCII
- 如果字符大于2字节,则第一字节的前
n
位置为1,第n+1
位置为0
,余下所有字节高位都填充10
,然后依次将Unicode的二进制数填充即转成UTF-8
如:
CSDN的MD竟然不支持表格…