[PHP-dev 1511] cp5022x について

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-dev 1511] cp5022x について

Rui Hirokawa-3
廣川です。

最近、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 <[hidden email]> (@rui_hi)
_______________________________________________
PHP-dev mailing list
[hidden email]
http://ml.php.gr.jp/mailman/listinfo/php-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-dev 1522] Re: cp5022x について

Tomoyuki Asakawa
あさかわです。

[PHP-dev 1520] Re: 絵文字 <-> Unicode 6.0 変換
と、同様なのですが。

        [PHP-dev 1511] cp5022x について
でかかれている波ダッシュ問題等で問題となる文字の扱いは。

これも、その人の、想定する環境で考え方はかわるとおもいます。

たとえば
波ダッシュが、U+FF5Eな環境に、波ダッシュがU+301C な環境で作成されたデータを格納する場合には
変換が必要なのですが、その変換処理を書くにはmbstringが利用できない事になります。

CP5022X-MS とCP5022Xの2つでも良いのですが。3文字が、必ずしも想定どおりのセットで使われてるわけじゃないので、そうじゃない場合はやは利用できない事になります。

この場合、ベースとなる、対応は、環境依存なのですが
やはり、外部からくるデータについては3文字ですから。8種類の可能性ある事になります。
(逆に外部に渡す必要がある場合も同様です)

これを、プログラム的に再定義できる様になっていて欲しいと思います。


_______________________________________________
PHP-dev mailing list
[hidden email]
http://ml.php.gr.jp/mailman/listinfo/php-dev
Loading...