[InterDB] [著者HP] [PREVIOUS][UP][NEXT]

Copyright @ 2009, Suzuki Hironobu @ InterDB


■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]