[Tokyo-pm] Encode::ISO2022JPMS モジュール

MORIYAMA Masayuki moriyama @ miraclelinux.com
2006年 10月 27日 (金) 03:43:43 PDT


ミラクルリナックスの森山です。

IPA 2005年度下期オープンソースソフトウェア活用基盤整備事業のプロジェク
トとして採択された、「オープンソースソフトウェアにおける統一したレガ
シーエンコーディングの変換機能の開発」で、作成しました、Perl 5.8.X の
Encode モジュール ISO-2022-JP-MS を使えるようにするためのモジュール
Encode::ISO2022JPMS を公開しました。

モジュール:
  Encode-ISO2022JPMS-0.1.tar.gz

テストフレームワーク:
  legacy-encoding-0.1.tar.gz

ダウンロード:
  以下の場所からダウンロードが可能です。
  http://sourceforge.jp/projects/legacy-encoding

成瀬氏によって開発された Encode::EUCJPMS と一緒に使うことにより、次の
事が実現できるようになります。

1) Windows の機種依存文字をシフトJIS (CP932)、日本語EUC (CP51932、
   eucJP-ms)、7ビットJIS (ISO-2022-JP-MS) で扱えるようになります。

2) Windows 上で作成された Unicode とシフトJIS (CP932)、日本語EUC
   (CP51932、eucJP-ms)、7ビットJIS (CP50220、CP50221、ISO-2022-JP-MS)
   との間で変換可能になります。

   具体的には、次の文字の変換が可能になります。

   文字 SJIS     EUC      JIS       Unicode   Unicode での
         コード値 コード値 コード値  コード値  文字の名前
   ----- -------- -------- --------- --------  ----------------------
    ―    0x815C   0xA1BD   0x213D    U+2015    HORIZONTAL BAR
    〜    0x8160   0xA1C1   0x2141    U+FF5E    FULLWIDTH TILDE
    ‖    0x8161   0xA1C2   0x2142    U+2225    PARALLELE TO
    −    0x817C   0xA1DD   0x215D    U+FF0D    FULLWIDTH HYPHEN-MINUS
    ¢    0x8191   0xA1F1   0x2171    U+FFE0    FULLWIDTH CENT SIGN
    £    0x8192   0xA1F2   0x2172    U+FFE1    FULLWIDTH POUND SIGN
    ¬    0x81CA   0xA2CC   0x224C    U+FFE2    FULLWIDTH NOT SIGN

    上記の Unicode 値との変換を行なう為には、次のエンコーディングを用
    いる必要があります。

      SJIS -> CP932          (Encode 標準)
      EUC  -> CP51932        (Encode::EUCJPMS)
              eucJP-ms       (Encode::EUCJPMS)
      JIS  -> CP5022[01]     (Encode::EUCJPMS)
              ISO-2022-JP-MS (Encode::ISO2022JPMS)

ISO-2022-JP-MS の概要は次の通りです。

ISO-2022-JP-MS
--------------
o ISO-2022-JP に次の文字集合を追加
    文字集合                                    エスケープシーケンス
    NEC特殊文字 (JIS X 0208 13区)               ESC $ B
    NEC選定IBM拡張文字 (JIS X 0208 89区〜92区)  ESC $ B
    JIS X 0201 片仮名                           ESC ( I
    ユーザー定義文字                            ESC $ ( ?
o Windows Codepage 50221 (Windows の 7ビットJISコード) とは、ユーザー
  定義文字を除いて互換性あり。

※ Encode::EUCJPMS で CP50220 と CP50221 が利用できるため、ISO-2022-JP-
MS ではなく、そちらの方を使用するのが望ましいと思われます。

--
森山 将之 moriyama @ miraclelinux.com
ミラクル・リナックス株式会社



Tokyo-pm メーリングリストの案内