- ベストアンサー
&jcode'convert(しても文字化けする
cgiにある日本語文書contents.txtをメール受信すると文字化けします。 解決策を教えてください。 require './jcode.pl'; open(FH, ">contents.txt"); print FH @contents; close(FH); #連結 $contents=""; foreach $key (@contents) { $contents=$contents.$key; } &jcode'convert(*contents,'jis');
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
どのjcode.plでしょうか? 改造されていない限り、jcode.plはUnicodeに対応していません。 @contentsがUTF-8だったりしたら、jcode.plでは対応できません。 Perlが古い等の理由が無いのなら、Encodeモジュールを使いましょう。
お礼
ありがとうございました、頂いた回答をヒントに以下のようにして解決しました。 use Jcode; $subject = Jcode::convert( $subject, "jis", ""); $contents = Jcode::convert($contents, "jis", "");
補足
回答ありがとうございます。 普通のjcode.plですが、メール送信の日本語文書はHTMLのjavascriptで1行入力の文字列をencodeURIしてcgiのパラメータにしています。 cgiではこの文書を蓄積してメール送信しています。 日本語はUTF-8コードの可能性があります、encodeURIの変換又はその後でjisかsjisでcgiに渡せないでしょうか?