PostgreSQL��ʸ�����åȡʥ����ǥ��Ȥ�ƤФ�ޤ��˥��ݡ��Ȥˤ�ꡢISO 8859������ʤɤΥ���Х���ʸ����EUC�ʳ�ĥUnix�����ɡˡ�UTF-8��Mule���������ɤʤɤΥޥ���Х���ʸ����ޤࡢ�Ƽ�ʸ�����åȤǥƥ����Ȥ���¸���뤳�Ȥ��Ǥ��ޤ��� ���Ƥ�ʸ�����åȤϥ��饤����Ȥˤ��Ʃ��Ū�˻��Ѥ��뤳�Ȥ��Ǥ��ޤ����������Ĥ��ϡ���������ǤΡʤĤޤꥵ���Х����ɥ����ǥ��Ȥ��ơ˻��Ѥϥ��ݡ��Ȥ���Ƥ��ޤ��ǥե���Ȥ�ʸ�����åȤϡ�initdb����Ѥ���PostgreSQL�ǡ����١������饹���ν�������˷��ꤵ��ޤ��� ����ϡ��ǡ����١��������������˾���뤳�Ȥ��Ǥ���Τǡ��ۤʤ�ʸ�����åȤ���Ѥ���ʣ���Υǡ����١�������Ĥ��Ȥ��Ǥ��ޤ���
���������פ����¤ϡ����줾��Υǡ����١�����ʸ�����åȤ������Ф�LC_CTYPE����ȸߴ�����̵���ƤϤ����ޤ��� LC_CTYPE��C�⤷����POSIX�ΤȤ��ϡ��ɤΤ褦��ʸ�����åȤ���Ĥ���Ƥ��ޤ��� ��������¾��LC_CTYPE������ΤȤ��ϡ�������ư���ʸ�����åȤϤҤȤĤ����Ȥʤ�ޤ��� LC_CTYPE���꤬initdb�ˤ����뤵��Ƥ��뤿�ᡢ�ʼºݤΥ�������ǧ����̵�����������C or POSIX��������������Ȥ�������Ƥϡ����饹���ΰۤʤ�ǡ����١������Ѥ�����ۤʤ륨���ǥ�����Ѥ��뤳�Ȥν������ϡ�����Ū�Ȥ�������ष������Ū�Ǥ��뤫�Τ褦�˻פ��ޤ��������λ��ȤߤϺ����PostgreSQL�ΥС������ǻ��Ѥ����褦�ˤʤ�Ǥ��礦��
PostgreSQL�ǻ��ѤǤ���ʸ�����åȤ�表22-1�˼����ޤ���
表 22-1. PostgreSQLʸ�����å�
̾�� | ���� | ���� | �����С� | �Х��ȿ�/ʸ�� | ��̾ |
---|---|---|---|---|---|
BIG5 | Big Five | ��������� | 1-2 | ������ | WIN950��Windows950 |
EUC_CN | Extended UNIX Code-CN | �ʰ����� | �Ϥ� | 1-3 | |
EUC_JP | Extended UNIX Code-JP | ���ܸ� | �Ϥ� | 1-3 | |
EUC_JIS_2004 | Extended UNIX Code-JP, JIS X 0213 | ���ܸ� | �Ϥ� | 1-3 | |
EUC_KR | Extended UNIX Code-KR | �ڹ�� | �Ϥ� | 1-3 | |
EUC_TW | Extended UNIX Code-TW | ��������졢���Ѹ� | �Ϥ� | 1-3 | |
GB18030 | National Standard | ���� | ������ | 1-2 | |
GBK | Extended National Standard | �ʰ����� | ������ | 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 | |
KOI8 | KOI8-R(U) | ������ | �Ϥ� | 1 | KOI8R |
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���������� | ¿����Emacs | �Ϥ� | 1-4 | |
SJIS | Shift JIS | ���ܸ� | ������ | 1-2 | Mskanji��ShiftJIS��WIN932��Windows932 |
SQL_ASCII | ̤����ʥƥ����Ȥȡ� | ���Ǥ� | �Ϥ� | 1 | |
SHIFT_JIS_2004 | Shift JIS, JIS X 0213 | ���ܸ� | ������ | 1-2 | |
SQL_ASCII | ̤����ʥƥ����Ȥȡ� | ���Ǥ� | �Ϥ� | 1 | |
UHC | ����ϥ륳���� | �ڹ�� | ������ | 1-2 | WIN949��Windows949 |
UTF8 | Unicode��8�ӥå� | ���٤� | �Ϥ� | 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 |
���Ƥ�API����ΰ���ɽ�˼�����ʸ�����åȤݡ��Ȥ��Ƥ���櫓�ǤϤ���ޤ��� �㤨��PostgreSQL JDBC�ɥ饤�Ф�MULE_INTERNAL��LATIN6��LATIN8��������LATIN10�ݡ��Ȥ��ޤ���
SQL_ASCII������ϡ�¾������Ȥ��ʤ�ۤʤ�ޤ��������ФΥ���饯�����åȤ�SQL_ASCII�ΤȤ��������Ф�0����127�ΥХ����ͤ�ASCII���Ѵ����ޤ���������128����255�ޤǤ��Ѵ�����ޤ��� ���꤬SQL_ASCII�ξ��ϡ���沽�ϼ¹Ԥ���ޤ���äơ�����������������沽����Ѥ��Ƥ�����ˤϡ�������沽��̵�뤹��褦�ˤʤäƤ��ޤ��ޤ��� ¿���ξ�硢ASCII�ǤϤʤ��Ķ��Ǻ�Ȥ������SQL_ASCII���������Ѥ���Τϡ��������ȤǤϤ���ޤ��ʤ��ʤ�PostgreSQL��ASCII�ǤϤʤ�ʸ�����Ѵ������긡�������ꤹ�뤳�ȤϽ���ʤ�����Ǥ���
initdb��PostgreSQL���饹���Υǥե����ʸ�����åȤ�������ޤ��� �ʲ�������ޤ���
initdb -E EUC_JP
����ϥǥե���Ȥ�ʸ�����åȡ���沽�����ˤ�EUC_JP�����ܸ��ĥUnix�����ɡˤ����ꤷ�ޤ��� ���Ĺ�����ץ�����ʸ��������Ϥ���Τ������ߤʤ�-E�������--encoding�Ƚ��Ȥ�Ǥ��ޤ��� -E���ץ�����--encoding���ץ�����Ϳ�����ʤ���硢initdb�ϡ�����⤷���ϥǥե���ȤΥ�������˴�Ť���Ŭ������沽��������ꤷ�褦�Ȥ��ޤ���
�⤷C�ޤ���POSIX����������������ϡ��ۤʤ�ʸ�����åȤΥǡ����١�����������뤳�Ȥ��Ǥ��ޤ���
createdb -E EUC_KR korean
�����EUC_KRʸ�����åȤ�korean�Ȥ���̾���Υǡ����١�����������ޤ��� SQL���ޥ�ɤ�Ʊ�����Ȥ�Ԥ��ˤϼ��Τ褦�ˤ��ޤ���
CREATE DATABASE korean WITH ENCODING 'EUC_KR';
�ǡ����١�������沽������pg_database�����ƥ५�������˳�Ǽ����ޤ��� psql��-l���ץ����\l���ޥ�ɤ���沽�������ǧ���뤳�Ȥ��Ǥ��ޤ���
$ psql -l List of databases Database | Owner | Encoding ---------------+---------+--------------- euc_cn | t-ishii | EUC_CN euc_jp | t-ishii | EUC_JP euc_kr | t-ishii | EUC_KR euc_tw | t-ishii | EUC_TW mule_internal | t-ishii | MULE_INTERNAL postgres | t-ishii | EUC_JP regression | t-ishii | SQL_ASCII template1 | t-ishii | EUC_JP test | t-ishii | EUC_JP utf8 | t-ishii | UTF8 (9 rows)
重要項目: On most modern operating systems, PostgreSQL can determine which character set is implied by an LC_CTYPE setting, and it will enforce that only the correct database encoding is used. On older systems it is your responsibility to ensure that you use the encoding expected by the locale you have selected. A mistake in this area is likely to lead to strange misbehavior of locale-dependent operations such as sorting.
�Ƕ�Υ��ڥ졼�ƥ������ƥ�Ǥϡ�PostgreSQL�ϡ�LC_CTYPE������ˤ��ɤ�ʸ�����åȤ����ꤵ��Ƥ��뤫����Ǥ��ޤ����ޤ�������1�Ĥ��������ǡ����١��������ǥ������Ѥ����褦�ˤǤ��ޤ����Ť����ڥ졼�ƥ������ƥ�Ǥϡ���ʬ��������������ˤ�äƴ��Ԥ���Ƥ��륨���ǥ�����Ѥ��Ƥ��뤫���ǧ����ΤϳƼ�����Ǥ�ˤʤ�ޤ��������Ǥδְ㤤�ϡ������ȤȤ��ä��褦�ʥ�������˰�¸����������̯�Ǥ�������ư���Ȥ��ä����ȤˤĤʤ���ޤ���
PostgreSQL will allow superusers to create databases with SQL_ASCII encoding even when LC_CTYPE is not C or POSIX. As noted above, SQL_ASCII does not enforce that the data stored in the database has any particular encoding, and so this choice poses risks of locale-dependent misbehavior. Using this combination of settings is deprecated and may someday be forbidden altogether.
PostgreSQL�ϡ�LC_CTYPE��C�⤷����POSIX�Ǥ�ʤ����ˤ⡢�����ѥ桼����SQL_ASCII�����ǥ��ǥǡ����١�����������뤳�Ȥ���Ĥ��ޤ����嵭�Τ褦�ˡ�SQL_ASCII�ϡ��ǡ����١�������¸����Ƥ���ǡ���������Υ����ǥ�����Ĥ��Ȥ������ޤ�����ˡ���������ϥ�������˰�¸������������ư�������������ꥹ������ޤ�������������Ȥ߹�碌����Ѥ��뤳�Ȥϡ�������Ǥ��ޤ������Ĥ����������˶ػߤ���뤫�⤷��ޤ���
PostgreSQL�ϡ�����ʸ�����åȤ��Ȥ߹�碌���Ф��ƥ����Фȥ��饤����Ȥδ֤Ǽ�ưŪ��ʸ�����åȤ��Ѵ����뵡ǽ�����Ƥ��ޤ��� �Ѵ������pg_conversion�����ƥ५�������˳�Ǽ����Ƥ��ޤ���PostgreSQL�ˤϡ�表22-2�Ǽ�����Ƥ���褦�ˡ�������������줿�Ѵ�����°���ޤ��� �������Ѵ����������ˤ�SQL���ޥ�ɤ�CREATE CONVERSION����Ѥ��ޤ���
表 22-2. ���饤����ȡ�������ʸ�����å��Ѵ�
������ʸ�����å� | ���Ѳ�ǽ�ʥ��饤�����ʸ�����å� |
---|---|
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 | �����Ф���沽�����Ȥ��Ƥϥ��ݡ��Ȥ��Ƥ��ޤ��� |
GBK | �����Ф���沽�����Ȥ��Ƥϥ��ݡ��Ȥ��Ƥ��ޤ��� |
ISO_8859_5 | ISO_8859_5�� KOI8�� 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 |
KOI8 | KOI8�� ISO_8859_5�� MULE_INTERNAL�� UTF8�� WIN866�� WIN1251 |
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�� KOI8�� LATIN1 to LATIN4�� SJIS�� WIN866�� WIN1250�� WIN1251 |
SJIS | �����Ф���沽�����Ȥ��Ƥϥ��ݡ��Ȥ��Ƥ��ޤ��� |
SQL_ASCII | �ɤ�Ǥ� ���Ѵ�����ޤ���� |
UHC | �����Ф���沽�����Ȥ��Ƥϥ��ݡ��Ȥ��Ƥ��ޤ��� |
UTF8 | ���٤ƥ��ݡ��Ȥ���Ƥ��ޤ��� |
WIN866 | WIN866�� ISO_8859_5�� KOI8�� MULE_INTERNAL�� UTF8�� WIN1251 |
WIN874 | WIN874�� UTF8 |
WIN1250 | WIN1250�� LATIN2�� MULE_INTERNAL�� UTF8 |
WIN1251 | WIN1251�� ISO_8859_5�� KOI8�� 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 |
��ưʸ�����å��Ѵ���ͭ���ˤ��뤿��ˤϡ����饤����ȤǤɤΤ褦��ʸ�����åȡ���沽�����ˤ���Ѥ�����������PostgreSQL�������ʤ���Фʤ�ޤ��� �����Ԥ��ˤϤ����Ĥ�����ˡ������ޤ���
psql��\encoding���ޥ�ɤ�Ȥ��ޤ��� \encoding�ϼ¹���Ǥ��äƤ⥯�饤����Ȥ���沽�������ѹ������뤳�Ȥ��Ǥ��ޤ��� �㤨����沽������SJIS���Ѥ��������ϼ��Τ褦�����Ϥ��ޤ���
\encoding SJIS
libpq (項30.9)�ϥ��饤����Ȥ���沽���������椹��ؿ����ݻ����Ƥ��ޤ���
SET client_encoding TO��Ȥ��ޤ��� ����SQL���ޥ�ɤǥ��饤����Ȥ���沽����������Ǥ��ޤ���
SET CLIENT_ENCODING TO 'value';
ɸ��SQL�ι�ʸSET NAMES��Ʊ����Ū�ǻȤ����Ȥ�Ǥ��ޤ���
SET NAMES 'value';
���ߤΥ��饤����Ȥ���沽�������䤤��碌��ˤϼ��Τ褦�ˤ��ޤ���
SHOW client_encoding;
�ǥե���Ȥ���沽�������᤹�Τˤϼ��Τ褦�ˤ��ޤ���
RESET client_encoding;
PGCLIENTENCODING��Ȥ��ޤ��� ���饤����ȤδĶ���PGCLIENTENCODING�Ķ��ѿ����������Ƥ���ȡ������Ф���³����Ω���������Ǽ�ưŪ�˥��饤����Ȥ���沽����������ޤ� �ʾ��������������¾�Τɤ����ˡ�Ǥ⤽�θ�����Ǥ��ޤ��ˡ�
client_encoding�ѿ���Ȥ��ޤ��� client_encoding�ѿ������ꤵ��Ƥ���ȡ������ФȤ���³����Ω���������Ǽ�ưŪ�˥��饤����Ȥ���沽����������ޤ� �ʾ��������������¾�Τɤ����ˡ�Ǥ⤽�θ�����Ǥ��ޤ��ˡ�
EUC_JP���Фˡ�������LATIN1�饤����Ȥ���������Τ褦�ˡ������ʸ�����Ѵ����Ǥ��ʤ��������ܸ�ʸ����LATIN1�����äƤ��ʤ��Τǥ��顼����𤵤�ޤ���
���饤�����¦�Υ���饯�����åȤ�SQL_ASCII���������Ƥ�����ϡ���沽�Ѵ��ϥ�����¦�Υ���饯�����åȤ˴ط�̵��̵��������ޤ��� ������¦��Ʊ���褦�ˡ�SQL_ASCII����Ѥ��뤳�Ȥϡ����٤�ASCII�Υǡ����äƤ�����������������ˡ�ǤϤ���ޤ���
�����˵�������Τ��͡�����沽���������ƥ��ؽ�����Τ��ɤ������Ǥ���
An extensive collection of documents about character sets, encodings, and code pages.
3.2���EUC_JP��EUC_CN��EUC_KR��EUC_TW�ξܤ�������������ޤ���
Unicode�����Web�����ȤǤ���
������UTF-8���������Ƥ��ޤ���