2017年7月5日

PerlのEncode::JIS2KとPython

以前に自分が書いた記事が矢野さんに取り上げられて大変嬉しかったので、引き続きいろいろな処理系でのJIS X 0213の実装状況を調べていたのですが、Pythonと同様な変換を持った実装を見付けました。

Unicode の嫌なところを触ってしまった Python
http://yanok.net/2017/06/unicode-python.html

それがPerlのEncode::JIS2Kモジュールなのですが、

Encode::JIS2K - search.cpan.org
http://search.cpan.org/~dankogai/Encode-JIS2K/JIS2K.pm

こちらもPythonと同様にこのような変換を持っていました。

JIS X 0213Unicode
1面2区54点U+2985LEFT WHITE PARENTHESIS
1面2区55点U+2986RIGHT WHITE PARENTHESIS

もしかすると、PerlのEncode::JIS2Kモジュールを実装された方とPythonのcodecsモジュールを実装された方が、偶々どこかの同じ資料を参照していたのかもしれません。

ちなみに、その他の実装では大抵このような変換になっています。

JIS X 0213Unicode
1面2区54点U+FF5FFULLWIDTH LEFT WHITE PARENTHESIS
1面2区55点U+FF60FULLWIDTH RIGHT WHITE PARENTHESIS

Encode::JIS2Kは、
  • JIS X 0213の2004年改正に未対応
  • Unicodeへの変換結果が結合文字列となる文字に未対応
といった特徴があるので、特段の理由が無ければEncode::JISX0213およびEncode::ShiftJIS2003を使用したほうが良いかもしれません。

Encode::JISX0213 - search.cpan.org
http://search.cpan.org/~nezumi/Encode-JISX0213-0.04/lib/Encode/JISX0213.pm
Encode::ShiftJIS2004 - search.cpan.org
http://search.cpan.org/~nezumi/Encode-JISX0213-0.04/lib/Encode/ShiftJIS2004.pm