Jcode.pmでconvertできない
あけましておめでとうございます。
早速ですが、皆様のお力を拝借したく。
WindowsXPSP2+ActivePerl5.6.1でJcode.pmを使用して、utf8へ変換しようとしました。
http://okwave.jp/qa2600582.html を参考にJcode.pmを導入し(とある事情でインストールしておりません)、以下のソースを記述しました。
ちなみに"sjis"で記述しております。
#!/usr/local/bin/perl
use lib "./lib";
use Jcode;
$buf = "てすてすてす";
print "BeforeCode=".Jcode::getcode($buf)."\n";
Jcode::convert( \$buf, "utf8");
#$j = Jcode->new($buf);
#$buf = $j->utf8;
print "$buf\n";
print "AfterCode=".Jcode::getcode($buf)."\n";
exit;
すると
BeforeCode=sjis
AfterCode=euc
と表示され、"utf8"を指定したにも関わらず、"euc"に変換されてしまいました。
次に、上記ソースの中ほどを
#Jcode::convert( \$buf, "utf8");
$j = Jcode->new($buf);
$buf = $j->utf8;
と書き換えてみました。すると、
BeforeCode=sjis
Undefined subroutine &Jcode::_Classic::euc_utf8 called at lib/Jcode/_Classic.pm line 255.
とエラーが出てしまいます。
見た感じeuc_utf8が存在しないと言われているようですが、Jcode\Unicode\NoXS.pmに存在しています。
環境に問題があるような気はしますが、どのようにすれば"utf8"への変換が成功するのでしょうか?ご教授いただければ幸いです。
ちなみに上記ソースで
Jcode::convert( \$buf, "jis");
Jcode::convert( \$buf, "euc");
Jcode::convert( \$buf, "sjis");
はすべて成功し、指定した文字コードに変換されました。
"utf8"への変換だけが失敗するという状況で、新年早々頭を抱えております。
お礼
ありがとうございました。 バージョン0.88をダウンロードしてからwin_install.plでインストールしました。 無事にインストールができました。 何度も質問したにもかかわらず、丁寧な回答を頂き、ありがとうございました。