很多国内客户对中文编码要求比较苛刻,今天我们来聊聊中文编码问题。
概念
- Deepgreen和Greenplum是基于PostgreSQL 8.2版本。
- PostgreSQL 8.2能够以各种字符集存储文本,比如 ISO-8859 系列和 EUC(扩展 Unix 编码)、UTF-8 、Mule 国际编码。缺省的字符集是在使用 initdb 初始化数据库集群的时候选择的。在你创建数据库的时候是可以覆盖这个缺省的。因此,你可以有多个数据库,每个都有不同的字符集。
- PostgreSQL 8.2只支持以UTF-8的形式存储中文,不支持GBK等标准国标编码。这也就从源头上限制了Deepgreen和Greenplum只能通过UTF-8的方式支持中文。
比较
- UTF-8作为一种全国家通用的编码,可以完全表示GBK字符,包括生僻字。所以在范围上,UTF-8更有优势,因为不仅可以表示中文,还可以表示英文等其他语言。建议在存储语言不固定时,选择UTF-8更为稳妥。
- GBK作为中文编码,在大篇幅表示中文时,会非常节省空间,所以如果项目中大部分都是中文,英文极少,可以选择GBK。