字符、字符集和字符编码
字符 基本信息单元,字母、数字和标点等 字符集 字符集合,例如ASCII、GBK 字符编码 字符集的二进制编码方式
那么问题来了,我们常说的ASCII、GBK等都是指字符编码,为什么被列入字符集里了?
实际上对于大部分的字符集来说,一个字符集智慧有一套编码,所以字符集即唯一确定了其编码。
但是凡事总有例外,UNICODE字符集就是一个特例,UNICODE存在多种编码方式,包括UTF-8、UTF-16等。
常见字符编码
ASCII
1 |
|
不够用了怎么办 -> LATIN-1(ISO-8859-1)
1 |
|
有中文了怎么办 -> GB2312
1 |
|
哎呀,中文那么多不够用啊 -> GBK
1 |
|
繁体字 -> BIG5
1 |
|
ISO表示我坐不住了 -> UNICODE
1 |
|
字符与字节
1 |
|
MySQL下的字符编码
show variables like ‘%character%’;
character_set_client 客户端字符编码 character_set_connection 网络传输数据的字符编码 character_set_database 服务端数据字符编码 character_set_filesystem 服务端文件名字符编码 character_set_results 服务端返回结果集的字符编码 character_set_server 服务端全局字符编码
MySQL字符集校对规则
相同字符集内,字符比较和排序的规则。
如果查看MySQL中,information_schema的CHARACTER_SETS,可以看到MySQL支持的字符集及其校对规则,例如:
图中显示了MySQL支持的字符集,以及对应字符集的校对规则、字符集中字符的长度。其中,不同的校对规则,会以_ci、_cs、_bin结尾,分别代表了不同的比对模式,_ci为大小写不敏感,_cs为大小写敏感,_bin为二进制比对。
MySQL表字符集修改
1 |
|