PostgreSQL��ʸ�����åȥ��ݡ��Ȥˤ�ꡢISO 8859������ʤɤΥ���Х���ʸ����EUC(��ĥUnix������)��Unicode��Mule���������ɤʤɤΥޥ���Х���ʸ����ޤࡢ�Ƽ�ʸ�����åȤǥƥ����Ȥ���¸���뤳�Ȥ��Ǥ��ޤ��� ���٤Ƥ�ʸ�����åȤϥ����Ф��Ф���Ʃ��Ū�˻��Ѥ��뤳�Ȥ��Ǥ��ޤ��� (¾�Υ���������γ�ĥ�ؿ�����Ѥ��Ƥ�����ϡ����Υ����ɤ���������������Ƥ��뤫�ɤ����˰�¸���ޤ���) �ǥե���Ȥ�ʸ�����åȤϡ�initdb����Ѥ���PostgreSQL�ǡ����١������饹���ν�������˷��ꤵ��ޤ��� ����ϡ�createdb �⤷���ϡ�CREATE DATABASE SQL ���ޥ�ɤ���Ѥ��ƥǡ����١��������������˾���뤳�Ȥ��Ǥ��ޤ��� �Ǥ����顢�ۤʤ�ʸ�����åȤ���Ѥ���ʣ���Υǡ����١�������Ĥ��Ȥ��Ǥ��ޤ���
�����Фǻ��ѤǤ���ʸ�����åȤ�ɽ20-1�˼����ޤ���
ɽ 20-1. ������ʸ�����å�
̾�� | ���� |
---|---|
SQL_ASCII | ASCII |
EUC_JP | ���ܸ�EUC |
EUC_CN | ���� EUC |
EUC_KR | �ڹ�� EUC |
JOHAB | (�ϥ�١�����)�ڹ�� EUC |
EUC_TW | ���Ѹ� EUC |
UNICODE | Unicode (UTF-8) |
MULE_INTERNAL | Mule ���������� |
LATIN1 | ISO 8859-1/ECMA 94 (Latin alphabet no.1) |
LATIN2 | ISO 8859-2/ECMA 94 (Latin alphabet no.2) |
LATIN3 | ISO 8859-3/ECMA 94 (Latin alphabet no.3) |
LATIN4 | ISO 8859-4/ECMA 94 (Latin alphabet no.4) |
LATIN5 | ISO 8859-9/ECMA 128 (Latin alphabet no.5) |
LATIN6 | ISO 8859-10/ECMA 144 (Latin alphabet no.6) |
LATIN7 | ISO 8859-13 (Latin alphabet no.7) |
LATIN8 | ISO 8859-14 (Latin alphabet no.8) |
LATIN9 | ISO 8859-15 (Latin alphabet no.9) |
LATIN10 | ISO 8859-16/ASRO SR 14111 (Latin alphabet no.10) |
ISO_8859_5 | ISO 8859-5/ECMA 113 (Latin/Cyrillic) |
ISO_8859_6 | ISO 8859-6/ECMA 114 (Latin/Arabic) |
ISO_8859_7 | ISO 8859-7/ECMA 118 (Latin/Greek) |
ISO_8859_8 | ISO 8859-8/ECMA 121 (Latin/Hebrew) |
KOI8 | KOI8-R(U) |
WIN | Windows CP1251 |
ALT | Windows CP866 |
WIN1256 | Windows CP1256 (Arabic) |
TCVN | TCVN-5712/Windows CP1258 (Vietnamese) |
WIN874 | Windows CP874 (Thai) |
������: PostgreSQL 7.2 ������ LATIN5 ���ְ�ä� ISO 8859-5 ���̣���Ƥ��ޤ����� 7.2����LATIN5 �� ISO 8859-9 �Ǥ��� 7.1 �⤷���Ϥ�������Ǻ������줿 LATIN5 �ˤ��ǡ����١��������� 7.2 �˰ܹԤ��������Ϥ����ѹ����ä˵����ۤäƤ���������
���٤Ƥ� API ����˰���ɽ�Ȥ���ʸ�����åȤݡ��Ȥ��Ƥ���櫓�ǤϤ���ޤ��� �㤨�� PostgreSQL JDBC �ɥ饤�Ф� MULE_INTERNAL��LATIN6��LATIN8�������� LATIN10 �ݡ��Ȥ��ޤ���
initdb �� PostgreSQL ���饹���Υǥե����ʸ�����åȤ�������ޤ��� �ʲ�������ޤ���
initdb -E EUC_JP
����ϥǥե���Ȥ�ʸ�����å�(��沽����)�� EUC_JP (���ܸ��ĥ Unix ������) �����ꤷ�ޤ��� ���Ĺ�����ץ�����ʸ��������Ϥ���Τ������ߤʤ� -E ������� --encoding �Ƚ��Ȥ�Ǥ��ޤ��� -E ���ץ����� --encoding ���ץ�����Ϳ�����ʤ���硢SQL_ASCII���Ȥ��ޤ���
�ۤʤ�ʸ�����åȤΥǡ����١�����������뤳�Ȥ��Ǥ��ޤ���
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 Name | 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 regression | t-ishii | SQL_ASCII template1 | t-ishii | EUC_JP test | t-ishii | EUC_JP unicode | t-ishii | UNICODE (9 rows)
(���������ꥸ�ʥ�� Name �� �� Database �ȤʤäƤ��ޤ�����7.4 �Ǥμºݤη�̤ˤ��碌�Ƥ���ޤ���)
PostgreSQL �ˤ������ʸ�����åȤ��Ф��ƥ����Фȥ��饤����Ȥδ֤Ǽ�ưŪ��ʸ�����åȤ��Ѵ����뵡ǽ�����Ƥ��ޤ��� �Ѵ������ pg_conversion �����ƥ५�������˳�Ǽ����Ƥ��ޤ��� �������Ѵ����������ˤ� CREATE CONVERSION ����Ѥ��ޤ��� PostgreSQL �ˤ�����Ѥߤ��Ѵ��������Ĥ��Ѱդ���Ƥ��ޤ��� ɽ20-2������Ѥߤ��Ѵ����ޤ���
ɽ 20-2. ���饤����ȡ�������ʸ�����å��Ѵ�
������ʸ�����å� | ���Ѳ�ǽ�ʥ��饤�����ʸ�����å� |
---|---|
SQL_ASCII | SQL_ASCII, UNICODE, MULE_INTERNAL |
EUC_JP | EUC_JP, SJIS, UNICODE, MULE_INTERNAL |
EUC_CN | EUC_CN, UNICODE, MULE_INTERNAL |
EUC_KR | EUC_KR, UNICODE, MULE_INTERNAL |
JOHAB | JOHAB, UNICODE |
EUC_TW | EUC_TW, BIG5, UNICODE, MULE_INTERNAL |
LATIN1 | LATIN1, UNICODE MULE_INTERNAL |
LATIN2 | LATIN2, WIN1250, UNICODE, MULE_INTERNAL |
LATIN3 | LATIN3, UNICODE, MULE_INTERNAL |
LATIN4 | LATIN4, UNICODE, MULE_INTERNAL |
LATIN5 | LATIN5, UNICODE |
LATIN6 | LATIN6, UNICODE, MULE_INTERNAL |
LATIN7 | LATIN7, UNICODE, MULE_INTERNAL |
LATIN8 | LATIN8, UNICODE, MULE_INTERNAL |
LATIN9 | LATIN9, UNICODE, MULE_INTERNAL |
LATIN10 | LATIN10, UNICODE, MULE_INTERNAL |
ISO_8859_5 | ISO_8859_5, UNICODE, MULE_INTERNAL, WIN, ALT, KOI8 |
ISO_8859_6 | ISO_8859_6, UNICODE |
ISO_8859_7 | ISO_8859_7, UNICODE |
ISO_8859_8 | ISO_8859_8, UNICODE |
UNICODE | EUC_JP, SJIS, EUC_KR, UHC, JOHAB, EUC_CN, GBK, EUC_TW, BIG5, LATIN1 to LATIN10, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, WIN, ALT, KOI8, WIN1256, TCVN, WIN874, GB18030, WIN1250 |
MULE_INTERNAL | EUC_JP, SJIS, EUC_KR, EUC_CN, EUC_TW, BIG5, LATIN1 to LATIN5, WIN, ALT, WIN1250, BIG5, ISO_8859_5, KOI8 |
KOI8 | ISO_8859_5, WIN, ALT, KOI8, UNICODE, MULE_INTERNAL |
WIN | ISO_8859_5, WIN, ALT, KOI8, UNICODE, MULE_INTERNAL |
ALT | ISO_8859_5, WIN, ALT, KOI8, UNICODE, MULE_INTERNAL |
WIN1256 | WIN1256, UNICODE |
TCVN | TCVN, UNICODE |
WIN874 | WIN874, UNICODE |
��ưʸ�����å��Ѵ���ͭ���ˤ��뤿��ˤϡ����饤����ȤǤɤΤ褦��ʸ�����å�(��沽����)����Ѥ����������� PostgreSQL �������ʤ���Фʤ�ޤ��� �����Ԥ��ˤϤ����Ĥ�����ˡ������ޤ���
psql �� \encoding ���ޥ�ɤ�Ȥ��ޤ��� \encoding �ϼ¹���Ǥ��äƤ⥯�饤����Ȥ���沽�������ѹ������뤳�Ȥ��Ǥ��ޤ��� �㤨����沽������ SJIS ���Ѥ��������ϼ��Τ褦�����Ϥ��ޤ���
\encoding SJIS
libpq �ؿ���Ȥ��ޤ��� \encoding �Ϸ�̤����뤿��˼ºݤ� PQsetClientEncoding() ��ƤӽФ��Ƥ��ޤ���
int PQsetClientEncoding(PGconn *conn, const char *encoding);
������ conn �ϥ����Фؤ���³��encoding �ϻ��Ѥ�������沽�����Ǥ��� ���δؿ�����沽�������������������� 0 ���֤������Ԥ���� -1 ���֤��ޤ��� ������³���Ф��븽�ߤ���沽�����ϼ��Τ褦�ˤ��Ƴ�ǧ�Ǥ��ޤ���
int PQclientEncoding(const PGconn *conn);
EUC_JP �Τ褦�ʵ���ʸ����ǤϤʤ���沽���� ID ���֤����Ȥ����դ��Ʋ������� ��沽���� ID ����沽����̾���Ѵ�����ˤϼ��Τ褦�ˤ��ޤ���
char *pg_encoding_to_char(int encoding_id);
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 �ѿ���Ȥ��ޤ��� postgresql.conf �� client_encoding �ѿ������ꤵ��Ƥ���ȡ������ФȤ���³����Ω���������Ǽ�ưŪ�˥��饤����Ȥ���沽����������ޤ��� (��������������Τۤ��Τɤ����ˡ�Ǥ⤽�θ�����Ǥ��ޤ���)
�����ʸ�����Ѵ����Ǥ��ʤ��ä���硢��̤dz�ä�16�ʿ���ɽ�����Х����͡��㤨�С�(826C)�����Ѵ�����ޤ��� �������Ѥ�EUC_JP���饤������Ѥ�LATIN1�������Ȥ���ȡ����ܸ��ʸ������ˤ�LATIN1���Ѵ��Ǥ��ʤ���Τ�����ޤ���
�����˵�������ΤϤ��ޤ��ޤ���沽���������ƥ��ؽ����뤿��ˤ褤�����Ǥ���
3.2��� EUC_JP��EUC_CN��EUC_KR��EUC_TW �ξܤ�������������ޤ���
Unicode�����Web�����ȤǤ���
������ UTF-8 ���������Ƥ��ޤ���