����: �а� ã�� (<[email protected]>)���ǽ������� 2000-03-22�����ܤ����� �а�ã�פ�web ������ �Ȥ��Ʋ�������
�ޥ���Х��ȡ�MB�˥��ݡ��Ȥ� PostgreSQL �� EUC�ʳ�ĥ Unix �����ɡˡ�Unicode������� Mule ���������ɤʤɤΥޥ���Х���ʸ�����åȤ���褦�˰տޤ��줿��ΤǤ��� MB���Ȥ���ȡ�����ɽ����regexp�ˡ�LIKE�������Ĥ��δؿ��ǥޥ���Х���ʸ�����åȤ��Ȥ��ޤ���initdb ��Ȥä� PostgreSQL ���ȥ졼��������������ݤ˥ǥե���Ȥ���沽�����ƥब����ޤ������������ createdb �ޤ��� SQL �� CREATE DATABASE ���ޥ�ɤǥǡ����١������������ݤ˾���뤳�Ȥ��Ǥ��ޤ����������äơ��ǡ����١������Ȥ˰ۤʤä���沽�����ƥ�ˤ��ʣ���Υǡ����١�������Ĥ��Ȥ��Ǥ��ޤ���
�ޥ���Х��ȥ��ץ������դ��� configure ��¹Ԥ��ޤ���
./configure --enable-multibyte[=encoding_system]
������ encoding_system �ϰʲ���ɽ�ˤ����ͤΤ����ΤҤȤĤǤ���
Table 5-1. ʸ�����å���沽����
��沽 | ���� |
---|---|
SQL_ASCII | ASCII |
EUC_JP | ���ܸ� EUC |
EUC_CN | ���� EUC |
EUC_KR | �ϥ� 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 | ECMA-113 Latin/Cyrillic |
ISO-8859-6 | ECMA-114 Latin/Arabic |
ISO-8859-7 | ECMA-118 Latin/Greek |
ISO-8859-8 | ECMA-121 Latin/Hebrew |
KOI8 | KOI8-R(U) |
WIN | Windows CP1251 |
ALT | Windows CP866 |
Important: PostgreSQL 7.2 ������ LATIN5 ���ְ�ä�ISO 8859-5 ���̣���Ƥ��ޤ����� LATIN5 �� ISO 8859-9 �Ǥ���7.1 �⤷���Ϥ�������Ǻ������줿 LATIN5 �ˤ��ǡ����١��������� 7.2 �˰ܿ����������Ϥ����ѹ����ä˵����ۤäƤ���������
Important: ���٤Ƥ� API ����˰���ɽ�Ȥ�����沽�ݡ��Ȥ��Ƥ���櫓�ǤϤ���ޤ����㤨�� PostgreSQL JDBC �ɥ饤�Ф� MULE_INTERNAL�� LATIN6��LATIN8�������� LATIN10 �ݡ��Ȥ��ޤ���
�ǥե���Ȥ� PostgreSQL �����ܸ���沽��������ѤǤ���褦�˥���ե�����졼�������Ǥ���
$ ./configure --enable-multibyte=EUC_JP
�⤷��沽�����ƥब��ά���줿��� (./configure --enable-multibyte)�� SQL_ASCII �����Ѥ���ޤ���
initdb �� PostgreSQL �ΤҤȤĤΥ��ȥ졼�����Υǥե���Ȥ���沽������������ޤ�����Ǥ���
$ initdb -E EUC_JP
�ϥǥե���Ȥ���沽������ EUC_JP (���ܸ��ĥ Unix ������)�����ꤷ�ޤ������Ĺ�����ץ�����ʸ��������Ϥ���Τ������ߤʤ� -E ������� --encoding �Ƚ��Ȥ�Ǥ��ޤ���-E ���ץ����� --encoding ���ץ�����Ϳ�����ʤ���祳��ե�����졼����Ԥ�줿�Ȥ��˻��ꤵ�줿��沽�������Ȥ��ޤ���
�ۤʤ���沽�����Υǡ����١�����������뤳�Ȥ��Ǥ��ޤ���
$ createdb -E EUC_KR korean
�� EUC_KR ��沽������ korean �Ȥ���̾���Υǡ����١�����������ޤ���SQL ���ޥ�ɤ�Ʊ�����Ȥ�Ԥ��ˤϼ��Τ褦�ˤ��ޤ���
CREATE DATABASE korean WITH ENCODING = 'EUC_KR';
�ǡ����١�������沽������ pg_database �����ƥ५�������ˤ��� encoding column ��ɽ������ޤ��� -l ���ץ���� psql �� \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.2.1 �Ǥμºݤ� ��̤ˤ��碌�Ƥ���ޤ���)
PostgreSQL �ˤϤ����Ĥ�����沽�������Ф��ƥ����Фȥ��饤����Ȥδ֤Ǽ�ưŪ����沽�������������뵡ǽ�����Ƥ��ޤ������ѤǤ����ȹ礻�� Table 5-2 �ˤޤȤ�Ƥ���ޤ���
Table 5-2. ���饤�����/������ʸ�����å���沽����
�����Ф���沽���� | ���Ѳ�ǽ�ʥ��饤����Ȥ���沽���� |
---|---|
SQL_ASCII | SQL_ASCII��UNICODE��MULE_INTERNAL |
EUC_JP | EUC_JP��SJIS�� UNICODE��MULE_INTERNAL |
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 MULE_INTERNAL |
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 |
ISO_8859_6 | ISO_8859_6�� UNICODE |
ISO_8859_7 | ISO_8859_7�� UNICODE |
ISO_8859_8 | ISO_8859_8�� UNICODE |
ISO_8859_9 | ISO_8859_9��WIN, ALT, KOI8R�� UNICODE��MULE_INTERNAL |
UNICODE | EUC_JP��SJIS�� EUC_KR��EUC_CN�� EUC_TW��BIG5�� LATIN1 ���� LATIN10�� ISO_8859_5�� ISO_8859_6�� ISO_8859_7�� ISO_8859_8�� WIN��ALT�� KOI8 |
MULE_INTERNAL | EUC_JP��SJIS��EUC_KR��EUC_CN�� EUC_TW��BIG5��LATIN1 ���� LATIN5�� WIN��ALT��WIN1250 |
KOI8 | ISO_8859_9��WIN�� ALT�� KOI8�� UNICODE��MULE_INTERNAL |
WIN | ISO_8859_9��WIN�� ALT��KOI8�� UNICODE��MULE_INTERNAL |
ALT | ISO_8859_9��WIN�� ALT�� KOI8�� UNICODE�� MULE_INTERNAL |
��ư��沽��������ѤǤ���褦�ˤ��뤿��ˤϡ����饤����ȤǤɤΤ褦����沽��������Ѥ����������� 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 'encoding';
SQL92 �ι�ʸ SET NAMES ��Ʊ����Ū�ǻȤ����Ȥ�Ǥ��ޤ���
SET NAMES 'encoding';
���ߤΥ��饤����Ȥ���沽�������䤤��碌��ˤϼ��Τ褦�ˤ��ޤ���
SHOW CLIENT_ENCODING;
�ǥե���Ȥ���沽�������᤹�Τˤϼ��Τ褦�ˤ��ޤ���
RESET CLIENT_ENCODING;
PGCLIENTENCODING ��Ȥäơ� ���饤����ȤδĶ��ǴĶ��ѿ� PGCLIENTENCODING ���������Ƥ���ȥ����Ф���³����Ω���������Ǽ�ưŪ�˥��饤����Ȥ���沽����������ޤ���(��������������Τۤ��Τɤ����ˡ�Ǥ⤽�θ�����Ǥ��ޤ���)
Unicode ��¾����沽�����֤Ǥμ�ư��沽���������� PostgreSQL 7.1 ���饵�ݡ��Ȥ����褦�ˤʤ�ޤ�����7.1 �Ǥϥǥե���ȤǻȤ���褦�ˤʤäƤ��ޤ����ε�ǽ��Ȥ���褦�ˤ���ˤ� --enable-unicode-conversion ���ץ�����Ĥ��ƥ���ե�����졼������Ԥ��ޤ������ξ�� --enable-multibyte ���ץ�����ɬ�פǤ��Τ����դ��Ʋ�������
7.2 �Ǥ� --enable-unicode-conversion ���ץ�����ɬ�פ���ޤ���
�����ФǤ� EUC_JP ���������ƥ��饤����ȤǤ� LATIN1 ������Ƥ���Ȳ��ꤷ�ޤ���������������ܸ�ʸ���Τ����Ĥ��� LATIN1 ���������뤳�Ȥ��Ǥ��ޤ����ξ�� LATIN1 ʸ�����åȤ�ɽ���Ǥ��ʤ�ʸ���ϼ��Τ褦���ѷ����ޤ���
(HEXA DECIMAL)
�����˵�������ΤϤ��ޤ��ޤ���沽���������ƥ��ؽ����뤿��ˤ褤�����Ǥ���
��������� 3.2 �� EUC_JP�� EUC_CN��EUC_KR�� EUC_TW �ξܤ�������������ޤ���
Unicode ����� Web �����ȤǤ���
������ UTF-8 ���������Ƥ��ޤ���
Dec 7, 2000 * Unicode ��¾�Υ����ɴ֤���沽���������μ�ư������� * �����ѹ��� 7.1 ���� May 20, 2000 * SJIS UDC��NEC �ˤ�� IBM �����˥��ݡ��ȡʤȤ��䤨������ι��ˤ��� * �����ѹ��� 7.0.1 ���� Mar 22, 2000 * libpq �˴ؿ� PQsetClientEncoding �� PQclientEncoding ���ɲ� * ./configure --with-mb=EUC_JP ������� ./configure --enable-multibyte=EUC_JP ��Ȥ��褦���ѹ� * SQL_ASCII �ꥰ��å����ƥ��ȥ��������ɲ� * SJIS �桼�������ʸ����UDC�ˤݡ��� * �������ѹ��� 7.0 ���� July 11, 1999 * WIN1250��Windows Czech�˥��ݡ��Ȥ饤����ȥ����ɤ��ɲ� ��Pavel Behal �ι��ˤ��� * ����ѥ���ηٹ�ˤĤ��ƽ����ʤˤ���ޤȤ⤢����ι��ˤ��� Mar 23, 1999 * KOI8��KOI8-R�ˡ�WIN��CP1251�ˡ�ALT��CP866�ˤΥ��ݡ��� ��Oleg Broytmann �ˤ��ƥ��Ȥ˴��ա� * MB �ȥ�������˴ؤ���������� Jan 26, 1999 * �ե���ȥ������沽������ Big 5 ���ݡ��Ȥ��ɲ� ��Big5 ��Ȥ��ˤϥǡ����١����� EUC_TW �Ǻ������Ƥ��������� * EUC_TW �ꥰ��å����ƥ��ȥ��������ɲ� Dec 15, 1998 * SQL_ASCII ���ݡ��Ȥ˴ؤ���Х����� Nov 5, 1998 * 6.4���������ΥС������ pg_database �ϥǡ����١����� ��沽������ɽ�������encoding���������ޤ��� Jul 22, 1998 * ��沽������Ƚ���ѥ�������� initdb/createdb ���ѹ� * COPY ���ޥ�ɼ¹Ի��� PGCLIENTENCODING �ݡ��� * SQL92 �� SET NAMES �ݡ��� * LATIN2-5 �ݡ��� * UNICODE �ꥰ��å����ƥ��ȥ��������ɲ� * MB �Υƥ��ȥ������Ȥ��ɲ� * �������ե���������� Jun 5, 1998 * �Хå�����ɤȥե���ȥ���ɤ���沽���������ݡ��� * SET CLIENT_ENCODING �ʤɤο��������ޥ�ɤ��ɲ� * LATIN1 ʸ�����åȤݡ��� * 8 bit �ʷ餵�ε�ǽ���� April 21, 1998 �����Ĥ��ε�ǽ�����Ƚ��� * character_length()��position()��substring() �� �ޥ���Х���ʸ������Ѳ�ǽ�� * octet_length() ���ɲ� * configure �� --with-mb ���ɲ� * ������EUC_KR�Υꥰ��å����ƥ��� ��Soonmyung Hong �ι��ˤ��) * EUC_JP �Υꥰ��å����ƥ��ȥ��������ɲ� * System V �� regress/regress.sh ��������� * toupper()��tolower() �� 8 �ӥå�ʸ������褦�˽��� Mar 25, 1998 * PostgreSQL 6.3.1 �� MB PL2 ��Ƴ�� Mar 10, 1998 PL2 �Υ��� * EUC_JP��EUC_CN��MULE_INTERNAL �Υꥰ��å����ƥ��Ȥ��ɲ� * �Ѹ�ɥ������(���Υե�����)���ɲ� * 8 �ӥåȥ���Х���ʸ���˴ؤ���������� Mar 1, 1998 PL1 �Υ���
�������륵�ݡ��Ȥ�ͭ���ȤʤäƤ��� PostgreSQL �Ǥ� Windows ���饤����ȥץ�åȥե�����Ǥ� WIN1250 ʸ�����åȤ����ѤǤ��ޤ���
�ʲ��ι��ܤ����դ�ɬ�פǤ���
����Υ����ƥॷ���ƥ��������Ǥ�ư���ǧ������Ƥ��ޤ������Υƥ��Ȥ� cs_CZ.iso8859-2 ��������Ρ� Red Hat 6.0 �� Slackware 3.6 �ǹԤ��ޤ�����
�褷�ƥ����С��Υޥ���Х��ȥǡ����١�����沽������ WIN1250 �����ꤷ�褦�Ȥ��ƤϤ����ޤ���Unix �ˤ� WIN1250 �������뤬¸�ߤ��ʤ��ΤǾ�� LATIN2 ����Ѥ��ޤ���
WIN1250 ��沽���� Windows ODBC ���饤����ȤǤΤ��ѤǤ��ޤ���ʸ���Ϥ��λ�����������ɽ������ƺƳ�Ǽ�����褦���Ѵ�����ޤ���
Windows/ODBC ��� WIN1250
PostgreSQL ���������ư���ǽ�ȥ����Х�������沽������ LATIN2 �ˤ��ƥ���ѥ��뤷�ޤ���
���ȥ졼�����������Ԥ��ޤ����Ķ��ѿ��˥��������ѿ���������뤳�Ȥ�˺��ƤϤ����ޤ���
LC_ALL=cs_CZ.ISO8859-2
�������뤬���ꤵ�줿���֤ǥ����Ф��Ư�����ʤ���Фʤ�ޤ���
���������ȤäƤߤƤ����������������䤤��碌���¤��ؤ��ޤ���
Windows �ޥ����� PostgreSQL �� ODBC �ɥ饤�Фȡ��뤷�ޤ���
�ǡ��������������������ꤷ�ޤ����Ĥ��ιԤ� Connect Settings �ե�����ɤˤ��� ODBC ����ե�����졼�����Υ����������ܥå����˲ä��ޤ���
SET CLIENT_ENCODING = 'WIN1250';
����ɤ� ODBC �����ä� Windows ����⤦���ٻ�ޤ���