字符是各种文字和符合的总称,包括各国家文字、标点符号、图形符号、数字等。
字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见的字符集有ASCII、GB2312、GBK、GB18030、Unicode等。计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。
ASCII:最简单的西文编码方案,主要用于显示现代英语和其它西欧语言。使用1个字节表示,可表示128个字符。
GB2312:国家标准简体中文字符集,兼容ASCII。使用2个字节表示,能表示7445个字符,包括6763个汉字,几乎覆盖所有高频率汉字。
GBK:GB2312的扩展,加入对繁体字的支持,兼容GB2312。使用2个字节表示,可表示21886个字符。
GB18030:解决了中文、日文、朝鲜语等的编码,兼容GBK。采用变字节表示(1 ASCII,2,4字节)。可表示27484个文字。
Unicode:Unicode是国际标准编码字符集,为世界650种语言进行统一编码,兼容ISO-8859-1。Unicode字符集有多个编码方式,分别是UTF-8,UTF-16和UTF-32。
#查看mysql支持的字符集
show character set;
#查看表的设置
use mydb;
show create table emloyee;
如果设置字符集为GB2312
create table t_gb2312 (name varchar(30)) default charset=gb2312;
insert into t_gb2312(name) values ('张三');
select * from t_gb2312;
这样就会报错,将字符集改为gbk,就能解决,gbk包含的字符个数要比gb2312多。