2009年3月11日水曜日

Encode - Perlモジュール

私のPerl知識はPerl5のごくごく初期のレベルで止まっているわけだが、今日もまた新たな発見があった。

かつてはPerlで日本語文字コードを変換を行うには、jcodeモジュールを使う(明示的にjcode.plをどこからか持ってきてrequireしてた気が)のが一般的だったが、今やPerl5標準でEncodeというモジュールがあるようだ。

use Encode;

my $decoded = Encode::decode("euc-jp", $target);
my $encoded = Encode::encode("shiftjis", $decoded);

とかっていう風に使う。ここで「decode」や「encode」の概念がイマイチ分かりにくいが、要するに「内部エンコーディングであるUTF-8へdecodeするからencodeする」という事のようである。

ちなみに、上記の2つの処理をいっぺんに行うfrom_toという関数もあるのだが、どうも上手く動かないようだった。環境はMacPortsのPerl5 (MacOS X 10.5)及びActivePerlのPerl5 (Windows XP Pro)であった。理由は不明だ

0 件のコメント: