■1-07■ 文字コードの扱い
エンコーディング
PostgreSQLはマルチバイト文字コードが使用できます。当然、日本語処理も可能です。またユニコード(UTF-8)にも対応しています。
使用できるエンコーディングを表1-7に示します。
表.1-7 使用可能エンコーディング
==============================================================
エンコーディング 説明
==============================================================
SQL_ASCII ASCII
EUC_JP 日本語
EUC_CN 中国語
EUC_KR ハングル
EUC_TW 台湾
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 (7.2から)
LATIN7 ISO 8859-13 Latin Alphabet No.7 (7.2から)
LATIN8 ISO 8859-14 Latin Alphabet No.8 (7.2から)
LATIN9 ISO 8859-15 Latin Alphabet No.9 (7.2から)
LATIN10 ISO 8859-16 ASRO SR 14111 Latin Alphabet No.10 (7.2から)
ISO-8859-5 ECMA-113 Latin/Cyrillic (7.2から)
ISO-8859-6 ECMA-114 Latin/Arabic (7.2から)
ISO-8859-7 ECMA-118 Latin/Greek (7.2から)
ISO-8859-8 ECMA-121 Latin/Hebrew (7.2から)
KOI8 KOI8-R(U)
WIN Windows CP1251
ALT Windows CP866
WIN1256 Arabic Windows CP1256
TCVN Vietnamese TCVN-5712 (Windows CP1258)
WIN874 Thai Windows CP874
==============================================================
エンコーディングの変換
PostgreSQLサーバは、セッション毎にエンコーディングを変換してクライアントと通信する機能を持っています。
よって、例えばLinuxとWindowsマシンから同時にデータベースにアクセスする場合でも、クライアントが自身のエンコーディングを(SET client_encoding TO文で)サーバに伝えると、以降、PostgreSQLサーバは自動的にエンコーディングを変換してクライアントと通信します(図1-4)。
図1-4 エンコーディングの変換
変換できるエンコーディングの組合せを表1-8に示します。
表.1-8 変換可能エンコーディング方式一覧
====================================================================================
サーバのエンコーディング方式 利用可能なクライアントのエンコーディング方式
====================================================================================
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
====================================================================================
[
PREVIOUS][
UP][
NEXT]