名称 |
描述 |
语言 |
是否服务器端? |
ICU? |
字节/字符 |
别名 |
BIG5 |
Big Five |
繁体中文 |
否 |
否 |
1-2 |
WIN950, Windows950 |
EUC_CN |
扩展UNIX编码-中国 |
简体中文 |
是 |
是 |
1-3 |
|
EUC_JP |
扩展UNIX编码-日本 |
日文 |
是 |
是 |
1-3 |
|
EUC_JIS_2004 |
扩展UNIX编码-日本, JIS X 0213 |
日文 |
是 |
否 |
1-3 |
|
EUC_KR |
扩展UNIX编码-韩国 |
韩文 |
是 |
是 |
1-3 |
|
EUC_TW |
扩展UNIX编码-台湾 |
繁体中文,台湾话 |
是 |
是 |
1-3 |
|
GB18030 |
国家标准 |
中文 |
是 |
否 |
1-4 |
|
GBK |
扩展国家标准 |
简体中文 |
否 |
否 |
1-2 |
WIN936, Windows936 |
ISO_8859_5 |
ISO 8859-5, ECMA 113 |
拉丁语/西里尔语 |
是 |
是 |
1 |
|
ISO_8859_6 |
ISO 8859-6, ECMA 114 |
拉丁语/阿拉伯语 |
是 |
是 |
1 |
|
ISO_8859_7 |
ISO 8859-7, ECMA 118 |
拉丁语/希腊语 |
是 |
是 |
1 |
|
ISO_8859_8 |
ISO 8859-8, ECMA 121 |
拉丁语/希伯来语 |
是 |
是 |
1 |
|
JOHAB |
JOHAB |
韩语 |
否 |
否 |
1-3 |
|
KOI8R |
KOI8-R |
西里尔语(俄语) |
是 |
是 |
1 |
KOI8 |
KOI8U |
KOI8-U |
西里尔语(乌克兰语) |
是 |
是 |
1 |
|
LATIN1 |
ISO 8859-1, ECMA 94 |
西欧 |
是 |
是 |
1 |
ISO88591 |
LATIN2 |
ISO 8859-2, ECMA 94 |
中欧 |
是 |
是 |
1 |
ISO88592 |
LATIN3 |
ISO 8859-3, ECMA 94 |
南欧 |
是 |
是 |
1 |
ISO88593 |
LATIN4 |
ISO 8859-4, ECMA 94 |
北欧 |
是 |
是 |
1 |
ISO88594 |
LATIN5 |
ISO 8859-9, ECMA 128 |
土耳其语 |
是 |
是 |
1 |
ISO88599 |
LATIN6 |
ISO 8859-10, ECMA 144 |
日耳曼语 |
是 |
是 |
1 |
ISO885910 |
LATIN7 |
ISO 8859-13 |
波罗的海 |
是 |
是 |
1 |
ISO885913 |
LATIN8 |
ISO 8859-14 |
凯尔特语 |
是 |
是 |
1 |
ISO885914 |
LATIN9 |
ISO 8859-15 |
带欧罗巴和口音的LATIN1 |
是 |
是 |
1 |
ISO885915 |
LATIN10 |
ISO 8859-16, ASRO SR 14111 |
罗马尼亚语 |
是 |
否 |
1 |
ISO885916 |
MULE_INTERNAL |
Mule内部编码 |
多语种编辑器 |
是 |
否 |
1-4 |
|
SJIS |
Shift JIS |
日语 |
否 |
否 |
1-2 |
Mskanji, ShiftJIS, WIN932, Windows932 |
SHIFT_JIS_2004 |
Shift JIS, JIS X 0213 |
日语 |
否 |
否 |
1-2 |
|
SQL_ASCII |
未指定(见文本) |
任意 |
是 |
否 |
1 |
|
UHC |
统一韩语编码 |
韩语 |
否 |
否 |
1-2 |
WIN949, Windows949 |
UTF8 |
Unicode, 8-bit |
所有 |
是 |
是 |
1-4 |
Unicode |
WIN866 |
Windows CP866 |
西里尔语 |
是 |
是 |
1 |
ALT |
WIN874 |
Windows CP874 |
泰语 |
是 |
否 |
1 |
|
WIN1250 |
Windows CP1250 |
中欧 |
是 |
是 |
1 |
|
WIN1251 |
Windows CP1251 |
西里尔语 |
是 |
是 |
1 |
WIN |
WIN1252 |
Windows CP1252 |
西欧 |
是 |
是 |
1 |
|
WIN1253 |
Windows CP1253 |
希腊语 |
是 |
是 |
1 |
|
WIN1254 |
Windows CP1254 |
土耳其语 |
是 |
是 |
1 |
|
WIN1255 |
Windows CP1255 |
希伯来语 |
是 |
是 |
1 |
|
WIN1256 |
Windows CP1256 |
阿拉伯语 |
是 |
是 |
1 |
|
WIN1257 |
Windows CP1257 |
波罗的海 |
是 |
是 |
1 |
|
WIN1258 |
Windows CP1258 |
越南语 |
是 |
是 |
1 |
ABC, TCVN, TCVN5712, VSCII |
initdb定义数据库默认字符集/编码,例如:
initdb -E GKR
可以用--encoding代替-E。如果没有给出-E或者--encoding选项,initdb会尝试基于指定的或者默认的区域判断要使用的合适编码。
使用非默认字符集/编码时,应考虑其与所选择的区域兼容:
createdb -E EUC_KR -T template0 --lc-collate=ko_KR.euckr --lc-ctype=ko_KR.euckr korean
或使用SQL命令实现:
CREATE DATABASE korean WITH ENCODING 'GB18030' LC_COLLATE='ko_KR.euckr' LC_CTYPE='ko_KR.euckr' TEMPLATE=template0;
数据库的字符集/编码存储在系统目录pg_database中。可以使用gsql -l选项或者\l命令进行查看。
gsql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+-------+----------+-------------+-------------+-------------------
gbase | gbase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
korean | gbase | EUC_KR | ko_KR.euckr | ko_KR.euckr |
template0 | gbase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/gbase +
| | | | | gbase=CTc/gbase
template1 | gbase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/gbase +
| | | | | gbase=CTc/gbase
(4 rows)
服务器字符集 |
可用的客户端字符集 |
BIG5 |
不支持作为一个服务器编码 |
EUC_CN |
EUC_CN, MULE_INTERNAL, UTF8 |
EUC_JP |
EUC_JP, MULE_INTERNAL, SJIS, UTF8 |
EUC_KR |
EUC_KR, MULE_INTERNAL, UTF8 |
EUC_TW |
EUC_TW, BIG5, MULE_INTERNAL, UTF8 |
GB18030 |
UTF8 |
GBK |
不支持作为一个服务器编码 |
ISO_8859_5 |
ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN866, WIN1251 |
ISO_8859_6 |
ISO_8859_6, UTF8 |
ISO_8859_7 |
ISO_8859_7, UTF8 |
ISO_8859_8 |
ISO_8859_8, UTF8 |
JOHAB |
JOHAB, UTF8 |
KOI8R |
KOI8R, ISO_8859_5, MULE_INTERNAL, UTF8, WIN866, WIN1251 |
KOI8U |
KOI8U, UTF8 |
LATIN1 |
LATIN1, MULE_INTERNAL, UTF8 |
LATIN2 |
LATIN2, MULE_INTERNAL, UTF8, WIN1250 |
LATIN3 |
LATIN3, MULE_INTERNAL, UTF8 |
LATIN4 |
LATIN4, MULE_INTERNAL, UTF8 |
LATIN5 |
LATIN5, UTF8 |
LATIN6 |
LATIN6, UTF8 |
LATIN7 |
LATIN7, UTF8 |
LATIN8 |
LATIN8, UTF8 |
LATIN9 |
LATIN9, UTF8 |
LATIN10 |
LATIN10, UTF8 |
MULE_INTERNAL |
MULE_INTERNAL, BIG5, EUC_CN, EUC_JP, EUC_KR, EUC_TW, ISO_8859_5, KOI8R, LATIN1 to LATIN4, SJIS, WIN866, WIN1250, WIN1251 |
SJIS |
不支持作为一个服务器编码 |
SQL_ASCII |
任意(不会执行任何转换) |
UHC |
不支持作为一个服务器编码 |
UTF8 |
所有支持的编码 |
WIN866 |
WIN866, ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN1251 |
WIN874 |
WIN874, UTF8 |
WIN1250 |
WIN1250, LATIN2, MULE_INTERNAL, UTF8 |
WIN1251 |
WIN1251, ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN866 |
WIN1252 |
WIN1252, UTF8 |
WIN1253 |
WIN1253, UTF8 |
WIN1254 |
WIN1254, UTF8 |
WIN1255 |
WIN1255, UTF8 |
WIN1256 |
WIN1256, UTF8 |
WIN1257 |
WIN1257, UTF8 |
WIN1258 |
WIN1258, UTF8 |
启用自动字符集转换功能,需要告知数据库客户端使用的字符集/编码:
\encoding SJIS
SET CLIENT_ENCODING TO 'value';
或者使用SQL的SET NAMES:
SET NAMES 'value';
查询当前客户端编码:
SHOW client_encoding;
重置为缺省编码:
RESET client_encoding;
使用client_encoding配置变量。如果client_encoding变量被设置,那么在与服务器建立了连接之后,这个客户端编码将备自动选定(这个设置随后可以用上文提到的方法重载)。