编码:将一个字符映射成一个二进制数据的过程叫做编码;
解码:将一个二进制数据映射到一个字符的过程叫做解码。
1、ASCII
共收录128个字符,包括空格、标点符号、数字、大小写字母和一些不可见字符。由于总共才128个字符,所以可以使用1个字节来进行编码
2、ISO 8859-1
共收录256个字符,是在 ASCII 字符集的基础上又扩充了128个西欧常用字符(包括德法两国的字母),也可以使用1个字节来进行编码。
3、GB2312
收录了汉字以及拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母。其中收录汉字6763个,其他文字符号682个。同时这种字符集又兼容 ASCII 字符集。
如果该字符在 ASCII 字符集中,则采用1字节编码。
否则采用2字节编码。
4、GBK
GBK 字符集只是在收录字符范围上对 GB2312 字符集作了扩充,编码方式上兼容 GB2312 。
5、Unicode
Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。目前的Unicode字符分为17组编排,0x0000至0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。
6、UTF8
收录地球上能想到的所有字符,而且还在不断扩充。这种字符集兼容 ASCII 字符集,采用变长编码方式,编码一个字符需要使用1~4个字节
7、MySQL中的utf8和utf8mb4
在 MySQL 中 utf8 是 utf8mb3 的别名,在 MySQL 中提到 utf8 就意味着使用1~3个字节来表示一个字符;
如存储一些emoji表情啥的,那请使用 utf8mb4 ;
utf8mb3 :阉割过的 utf8 字符集,只使用1~3个字节表示字符。
utf8mb4 :正宗的 utf8 字符集,使用1~4个字节表示字符。