- 締切済み
Jcode CP932 のエラーを回避したい。
プログラム初心者です。 form Mailを設置し、フォーム入力→確認画面までは動くのですが、 最後に、送信ボタンを押すと、500エラーになります。 お手上げです。詳しい方お教えください。 サーバーのエラーログをみたところ、 Can't locate object method "CP932" via package "Jcode" at form_mail.cgi となっていました。 ━━ #!/usr/bin/perl require 'jcode.pl'; $sendmail = '/usr/sbin/sendmail'; use Jcode; ━━ エラーと思われる箇所 sub jis { $msg = $_[0]; # Jcode::convert(*msg,'jis'); $msg = Jcode->new($msg, "UTF8")->CP932; &jcode'convert(*msg,'jis'); } ━━
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wap58
- ベストアンサー率33% (29/87)
ユニークなソースなのでどこかで見た記憶があります トピ主さんはそのページを参考にしたのでしょうか 出来ればサンプルページなど提示してもらえば 皆さんに、ソースの思考も理解してもらえると思います 細かい不具合を無理矢理、回避したいように感じました jisコードもちょっとイヤラシイので扱いに困ります use strict; use Jcode; my $utf8 = 'あ~ああ'; my($cp932,$sjis,$mime); &Jcode::convert($utf8,'jis'); print"convert jis => $utf8\n"; $cp932 = Jcode->new($utf8,"jis")->cp932; print"cp932 => $cp932\n"; $sjis = Jcode->new($utf8,"jis")->sjis; print"sjis => $sjis\n"; $mime = jcode($utf8)->mime_encode; print"mime => $mime\n"; __END__ Macターミナル表現文字、sjisの結果 convert jis => B$"!A$"$" cp932 => あ?ああ sjis => あ~ああ mime => =?ISO-2022-JP?B?GyRCJCIhQSQiJCIbKEI=?=
- hanabutako
- ベストアンサー率54% (492/895)
Jcode.pmにはCP932なんてないようですが?sjisの間違いでしょうか? http://openlab.ring.gr.jp/Jcode/Jcode.html#encoded_strings でも、見れば見るほど意味不明なコードですね。 $msg = Jcode->new($msg, "utf8")->jis;ではだめなのでしょうか? Perlの5.8.1以降ならJcodeなんて使わずEncodeを使えばよいと思いますが。 http://perldoc.perl.org/Encode.html use Encode qw(decode encode); $data = encode("utf8", decode("iso-2022-jp", $data));