[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 メーリングリストの案内