[PHP-dev 1345] PHP への CP932 系エンコーディングの追加パッチ
MORIYAMA Masayuki
moriyama @ miraclelinux.com
2006年 10月 27日 (金) 19:43:37 JST
ミラクルリナックスの森山です。
IPA 2005年度下期オープンソースソフトウェア活用基盤整備事業のプロジェク
トとして採択された、「オープンソースソフトウェアにおける統一したレガ
シーエンコーディングの変換機能の開発」で、作成した、PHP 5.1.4 での文字
コード変換で CP51932、ISO-2022-JP-MS を使えるようにするパッチを公開し
ました。
パッチファイル:
php-5.1.4-060825.patch
テストフレームワーク:
legacy-encoding-0.1.tar.gz
ダウンロード:
以下の場所からダウンロードが可能です。
http://sourceforge.jp/projects/legacy-encoding
このパッチを適用する事により、次の事が実現されます。
1) Windows の機種依存文字をシフトJIS (SJIS-win)、日本語EUC (CP51932、
eucJP-win)、7ビットJIS (ISO-2022-JP-MS) で扱えるようになります。
2) Windows 上で作成された Unicode とシフトJIS (SJIS-win)、日本語EUC
(CP51932、eucJP-win)、7ビットJIS (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 -> SJIS-win
EUC -> CP51932 もしくは eucJP-win
JIS -> ISO-2022-JP-MS
追加を行なう各エンコーディングの概要は次の通りです。
CP51932 (Windows Codepage 51932)
--------------------------------
o Windows で使用されている日本語EUC。
o EUC-JP の JIS X 0212 およびユーザー定義文字には対応していない。
o 機種依存文字のコード割り当てが eucJP-win とは異なる。
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コード) とは、ユーザー
定義文字を除いて互換性あり。
※ ISO-2022-JP-MS に関しては、今後、ユーザー定義文字の扱いに関しての
Windows との非互換を解消するために CP50221 (Windows Codepage 50221) に
変更する可能性があります。
--
森山 将之 moriyama @ miraclelinux.com
ミラクル・リナックス株式会社
PHP-dev メーリングリストの案内