[pgsql-jp: 37624] postgresql への CP932 系エンコーディングの追加パッチ
MORIYAMA Masayuki
moriyama @ miraclelinux.com
2006年 10月 27日 (金) 19:43:11 JST
ミラクルリナックスの森山です。
IPA 2005年度下期オープンソースソフトウェア活用基盤整備事業のプロジェク
トとして採択された、「オープンソースソフトウェアにおける統一したレガ
シーエンコーディングの変換機能の開発」で、作成した、Postgresql 8.1.3
のキャラクタエンコーディングに WIN51932 (Windows Codepage 51932) を追
加するパッチを公開しました。
パッチファイル:
/ostgresql-8.1.3-ja-20060427.patch
テストフレームワーク:
legacy-encoding-0.1.tar.gz
ダウンロード:
以下の場所からダウンロードが可能です。
http://sourceforge.jp/projects/legacy-encoding
このパッチを適用する事により、次の事が実現されます。
1) PostgreSQL で Windows Codepage 51932 (Windows の日本語EUC) を直接扱
えるようになります。
LAPP 環境で、PHP のスクリプトを EUC-JP で記述し、EUC-JP のまま HTTP
の入出力を行なう場合、データベースに CP51932 のデータが格納される
MySQL の設定
データベースのエンコーディング WIN51932
PHP の設定
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_output = pass
mbstring.http_input = pass
2) Windows 上で作成された Unicode とシフトJIS (CP932)、日本語EUC
(CP51932、eucJP-ms)、7ビットJIS (ISO-2022-JP-MS) との間で変換可能に
なります。
具体的には、次の文字の変換が可能になります。
文字 SJIS EUC Unicode Unicode での
コード値 コード値 コード値 文字の名前
----- -------- -------- --------- ----------------------
― 0x815C 0xA1BD U+2015 HORIZONTAL BAR
〜 0x8160 0xA1C1 U+FF5E FULLWIDTH TILDE
‖ 0x8161 0xA1C2 U+2225 PARALLELE TO
− 0x817C 0xA1DD U+FF0D FULLWIDTH HYPHEN-MINUS
¢ 0x8191 0xA1F1 U+FFE0 FULLWIDTH CENT SIGN
£ 0x8192 0xA1F2 U+FFE1 FULLWIDTH POUND SIGN
¬ 0x81CA 0xA2CC U+FFE2 FULLWIDTH NOT SIGN
上記の Unicode 値との変換を行なう為には、次のエンコーディングを用
いる必要があります。
SJIS -> SJIS
EUC -> WIN51932 もしくは EUC_JP
追加を行なう各エンコーディングの概要は次の通りです。
WIN51932 (Windows Codepage 51932)
--------------------------------
o Windows で使用されている日本語EUC。
o EUC-JP の JIS X 0212 およびユーザー定義文字には対応していない。
o 機種依存文字のコード割り当てが eucJP-ms とは異なる。
--
森山 将之 moriyama @ miraclelinux.com
ミラクル・リナックス株式会社
pgsql-jp メーリングリストの案内