- ベストアンサー
jcode.plについて
次のエラーが発生します。 Undefined subroutine &jcode::convf called at ./jcode.pl line 291. カレントに、jcode.plを置いているだけでは動作するのでしょうか? また、Jcode.pmを使った場合、 &Jcode::convert(\$test_sjis, "sjis"); と大文字にしないといけないのですが、これは仕方ないことでしょうか? てっきり、 require './jcode.pl'と use Jcode.pmの差し替えで済むと思っていました。 #!/usr/bin/perl require './jcode.pl'; my $test = "パソコン結構です。"; #文字化けチェック用 my $test_sjis = $test; my $test_ujis = $test; my $test_jis = $test; &jcode::convert(\$test_sjis, "sjis"); &jcode::convert(\$test_ujis, "ujis"); &jcode::convert(\$test_jis, "jis"); print "\$test_sjis=[$test_sjis]\n"; print "\$test_ujis=[$test_ujis]\n"; print "\$test_jis =[$test_jis]\n"; exit; __END__
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ujis と言うコードはありません。 エラーの原因は、ujis と言う未定義の文字コードを指定しているためです。 これは、キット euc と指定したかったのでしょう。 また、Jcode.pm は、 Jcode::convert(・・・); の様に使用します。Jは大文字です。 Jcode.pm は、oopに対応しているので、 Jcode->new($str)->sjis; などと言う形式で呼び出すのが一般的かも知れません。 ただ、jcode,pl も Jcode.pm も既に過去の機能となっていまして、最近では Encode.pm の使用が推奨されています。
その他の回答 (1)
- estea
- ベストアンサー率44% (39/87)
291行めがどこか知らんけど、記憶では、 日本語EUC の指定は ujis ではなく "euc" のままでよかったかと。