一、字符集和比较规则介绍
字符集可以理解成字符与二进制数据之间的映射关系,可以用来描述某个范围内的字符的编码规则。
- 编码:将字符映射成二进制数据的过程
- 解码:将二进制数据映射到字符的过程
字符集的比较规则:字符集的比较规则是用于比较两个字符大小的规则,如通过两个字符对应的二进制编码大小来比较等,同一个字符集可以有多种不同的比较规则
二、常见的字符集
- ASCII字符集:一共收录了128个字符,包括空格、标点符号、数字、大小写字母和一些不可见字符,采用一个字节来进行编码。
ASCII表
其中 数字的二进制编码对应的十进制范围是 48~57(数字1-9),大写字母是
65~90(A-Z),小写字母是97 ~122(a-z)。 - ISO 8859-1:别名Latin1,一共收录256个字符,它在ASCII的基础上又扩充了128个西欧常用字符。ISO 8859-1也可以使用一个字节来进行编码。
- GB2312:兼容了ASCII,收录了6763个汉字还有其他文字符号682个,当编码ASCII字符集中的字符时使用一个字节进行编码,否则使用两个字节进行编码。
- GBK:兼容了GB2312,在GB2312的基础上对字符范围进行了扩充。
- UTF-8:几乎收录了当今世界各个国家/地区使用的字符,兼容ASCII,采用变长码的方式进行编码,编码一个字符需要1~4个字节。
注意:UTF-8只是Unicode字符集的一种编码方案,Unicode字符集采用UTF-8、UTF-16、UTF-32这几种编码方案。UTF-8使用1~4个字节编码一个字符,UTF-16采用2或4个字节编码一个字符,UTF-32采用4个字节编码一个字符。
三、MySQL中的字符集
1、查看MySQL中的字符集和比较规则
查看MySQL中的字符集可以使用以下命令来查看
show (charset|character)