一、字符集简介;
ASCII:第一个计算机字符集
ISO-10646:国际标准化组织ISO制定,4字节编码。Unicode:部分美国计算机公司组成Unicode协会制定;后归于ISO-10646,但Unicode双字节都能满足用户需求,内存和处理时间上优于ISO-10646的四字节而更流行。
汉字常见字符集:
GB2312-80:1980年发布,全称《信息交换用汉字编码字符集 基本集》
GBK:1995年发布,对GB2312-80的补充。
常见字符集比较:
字符集 | 是否定长 | 编码方式 | 其他说明 |
ACSII | 是 | 单字节七位编码 | 最早奠基性字符集 |
GB 2312-80 | 是 | 双字节编码 | 早期标准 |
GBK | 是 | 双字节编码 | 国标码,但支持系统不少 |
UTF-16 | 否 | 2或4编码字节 | Java和Windows XP/NT等内部使用 |
UTF-8 | 否 | 1-4字节编码 | 互联网和UNIX/Linux广泛支持 |
ISO-8859-1/latin1 | 是 | 单字节8位编码 | 西欧字符集,经常被程序员用来转码 |
二、选择合适的编码字符集:
(1)使用各地区语言,满足国际化标准:UTF-8.
(2)如果数据库只支持一般中文,数据量很大,性能要求高,使用双字节定长编码中文字符集,如GBK;如中文少,处理主要英文字符使用UTF-8.
(3)数据库需要大量字符运算应选择定长字符集.
(4)如果所有客户端使用相同字符集则使用它,减少字符集转换的开销.