常见的字符集
1.Ascii字符集
2.扩展Ascii字符集 latin1 8位二进制 包括Ascii字符集中的全部字符
3.GB2312 BIG5 GBK 16位二进制
4.unicode 字符集 全球语言 16位二进制
5.扩展Ascii字符集 latin1 latin2
6.unicode字符集 unicode编码 一个字符2个字节
utf8 一个英文字符 占一个字节
一个中文字符使3个字节
7.utf8mb3 utf8mb4 more bit
8.utf-8是一种变长的字节编码方式,对于某一个字符的utf-8编码,如果只有一个字节则其最高位二进制位为0;如果是多字节,其第一个字符节从最高位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头,utf8最多可以用到6个字节。
示例:
1字节 0xxx xxxx
2字节 110x xxxx 10xx xxxx
3字节 1110 xxxx 10xx xxxx 10xx xxxx
4字节 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx
5字节 1111 10xx 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx
6字节 1111 110x 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx
A 0100 0001 65
B0100 0010 66
B>A
0 0011 0000 48
A a
a0110 0001 97
刘
1110 0101 1000 1000 1001 1010
E58896
A
0100 0001
41
示例:
新建文本文件,使用utf-8编码来保存,验证字符的字节数。
GBK字符集,一个英文占1个字节,一个汉字占2个字节。
MySQL支持的字符集
语法:
show character set;--查看MySQL支持的字符集 show variables like 'character_set_%';--查看当前MySQL使用的字符集
1.character_set_client客户端字符集
2.character_set_connection连接字符集
3.character_set_database数据库字符集
4.character_set_results返回结果的字符集
5.character_set_server服务器字符集
6.character_set_system系统字符集
创建数据库时,如果没有指定数据的字符集,则会使用服务器字符集;
创建表时,如果不指定表的字符集,则会使用数据库字符集;
创建表中字段时,如果不指定字段的字符集,则会使用表的字符集。