(1)字符集是十分重要的。
因为计算机内部实际存储都是二进制数据,而字符集通过为文字符号编码,能让计算机识别和处理文本数据。
(2)字符集是什么?
答:字符集是一套文字符号及其编码,比较规则的集合。
(3)常用字符集:
世界上已经存在了几百种字符集,不统一问题,造成本地化工作的艰难。
必须知道的:ASCII ; ISO-8859-1/latin 1 (西欧字符集) ;GB 2312-80 ;GBK ;GB 18030
UTF-32 ; UCS-2 (windows 2000内部使用);UTF-16(java 和windows Xp/NT 内部使用) ;UTF-8 (包括Linux在内广泛支持)
(4)Unicode
a. 1984年 ,为了统一字符编码,ISO推出了UCS(Universal Multiple-Octet Coded Character Set ; 标准编号 ISO-10464)
注:UCS的代码空间划分为:组(group) ; 面 (plane) ; 行(row) ; 格(ceil);
b. 1988年 Unicode协会推出了Unicode字符集
c. ISO妥协吸收了Unicode字符集,将其作为ISO-10646的0组0面 称为基本多语言文字面(Basic Multi-lingual Plan 即BMP)
注2:还有辅助字面(supplementary planes) 和专用字面(private use planes)
注3:BMP一般只需要2个字节即可,所以又称为USC-2编码
d.Unicode为了兼容BMP以外的字符,提出了UTF-16代理方案(限于当时环境,使用受限后,又提出了更通用的UTF-8代理方案)
(5)MySQL 支持几十种字符集。
a. 一般情况下选用Unicode字符集,也就是最常用的UTF-8编码。好处在于支持多地区通用。
b. 特殊情况下比如要转储数据,就要考虑原数据库的字符集问题。不过这个问题我认为可以通过一些ETL工具(比如Kettle)进行快捷转换。