前言
提示:在了解utf8mb4之前,需要先了解utf8与ASCII和unicode的区别:
提示:以下是本篇文章正文内容,下面案例可供参考
一、ASCII码
ASCII:8bits的英文编码,实际使用低7位,最多表示128个字符。之前是控制字符,之后是有效字符。如:110 0001 >>> a(97),128个字符对于全球字符数量来说明显不够的。
二、Unicode
Unicode:使用两字节对全球主流字符进行统一编码,有65536个编码。
三、UTF8
UTF指的是:Unicode Transfer Format,即Unicode传输编码。
UTF传输规则:
ASCII
110 0001 >>> a(97)
当传输字符为一个字节时,UTF传输固定格式如下,将一个字节拆分为两段,低6位放在第二段低6位,剩下的1位放在第一段最后1位,其余补0
110 xxxxx 10 xxxxxx 大概可以传输的字符有2的12次方减1种字符
Unicode
1011 0000 1101 1101 >>>汉
当传输字符为两个字节时,UTF传输固定格式如下,将两个字节拆分为三段段,低6位放在第三段低6位,中间6位放在第二段低6位,高4位放在第一段低4位
110xxxxx 10xxxxxx 10xxxxxx 可以传输2的17次方减1种字符
关于utf8mb4
utf8mb4
是MySQL / MariaDB中的一种字符集。
在当前主流版本的MySQL / MariaDB中,使用utf8
作为字符集时,默认表示的是utf8mb3
。
关于utf8mb3
和utf8mb4
,其主要区别在于:most bytes 3
和most bytes 4
,即最多使用3 / 4个字节来表示1个字符!所以,当使用utf8mb4
时,可以表示更多字符,例如生僻汉字、冷门符号、emoji表情符号等。
在使用MySQL / MariaDB时,所有SQL语句中涉及的字符集都明确的使用utf8mb4
,而不要使用utf8
。
总结
提示:这里对文章进行总结:
搞清楚了ASCII、Unicode和UTF-8的关系,我们就可以总结一下现在计算机系统通用的字符编码工作方式:
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件