[PHP-dev 1511] cp5022x について

Rui Hirokawa rui.hirokawa @ gmail.com
2011年 7月 24日 (日) 10:09:09 JST


廣川です。

最近、mbstring (libmbfl) のコードを見ていて気になったので、
cp5022x 関連のエンコーディング変換について確認させてください。

波ダッシュ問題等で問題となる文字に関して、JISコードからUnicodeへの
変換をまとめてみると、現在の mbstring (libmbfl)の実装では
以下のようになっていると思います。

JIS-code         波ダッシュ(0x2141)  双柱(0x2142)  マイナス(0x215D)
---------------------------------------------------------------------
JIS              U+301C              U+2016        U+2221
ISO-2022-JP      U+301C              U+2016        U+2221
ISO-2022-JP-MS   U+FF5E              U+2225        U+FF0D
CP5022X          U+301C              U+2016        U+2221
---------------------------------------------------------------------
SJIS             U+301C              U+2016        U+2221
SJIS-win         U+FF5E              U+2225        U+FF0D
CP932            U+FF5E              U+2225        U+FF0D
---------------------------------------------------------------------
EUC-JP           U+301C              U+2016        U+2221
eucJP-win        U+FF5E              U+2225        U+FF0D
CP51932          U+FF5E              U+2225        U+FF0D
---------------------------------------------------------------------

基本:ISO-2022-JP(JIS),SJIS,EUC-JP
eucJP-open系:ISO-2022-JP-MS,SJIS-win,eucJP-win
CP932(Windows31J)系:CP5022X (CP50220,CP50221,CP50222)、CP932, CP51932

と考えると、CP5022X の変換には、本来の意味にそっているいう意味では妥当な
変換と思いますが、CP932系との互換性という意味ではやや違和感があります。

CP5022XはOutlook Express等のWindows環境のMUAとの互換性を意図している
かと思いますので、そちらに合わせるというのが筋なのかもしれませんが、
正式な規格が公開されているわけではないので判断に迷うところです。

個人的には、CP5022Xの上記の3字に対する変換はISO-2022-JP-MSに
あわせる方が良いのではと思いますが、いかがでしょうか?


-- 
Rui Hirokawa <rui.hirokawa @ gmail.com> (@rui_hi)


PHP-dev メーリングリストの案内