一、什么是字符集

字符(character)是各种文字和符号的总称,包括国家文字、标点符号、图形符号、数字等。字符集(character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符数个数不同。计算机要准确的处理各种字符集文字,就需要进行字符编码,一边计算机能够师表和存储各种文字。常见字符集如下:

字符集 说明
ASCII 最简单的西文编码方案,主要用于显示现代英语和其他西欧语言。使用1个字节表示,可表示128个字符
GB2312 国家标准简体中文字符集,兼容 ASCII 。使用两个字节表示,能表示 7445 个字符,包括 6763 个汉字,几乎覆盖了所有高频汉字。
GBK GB2312的扩展,加入对繁体字的支持,兼容 GB2312。使用两个字节表示,可表示 21886个字符。
GB18030 解决了中文、日文、朝鲜语等的编码,兼容 GBK。采用变字节表示(1 ASCII,2,4字节)。克表示 27484 个文字。
Unicode Unicode是国际标准编码字符集,为世界650种语言进行统一编码,兼容 ISO-8859-1。Unicode 字符集有多个编码方式,分别是 UTF-8,UTF-16,UTF-32。

二、设置字符集

1. 数据库
# 创建数据库时指定字符集
create database databaseName charset utf8 collate utf8_general_ci;
# 查看数据库的字符集
show create database databaseName;
2. 表
# 创建表时指定字符集
create table tableName(...) default charset=utf8;
# 查看数据库的字符集
show create table tableNamel
3. 字段
# 指定字段编码方式
create table tableName(...,name varchar(50) not null charset utf8,..);