Unicode 和 UTF-8

来源:互联网 发布:中国阶层固化 知乎 编辑:程序博客网 时间:2024/05/16 19:18

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竟然不支持表格…

维基百科:https://zh.wikipedia.org/wiki/UTF-8