アプリ版:「スタンプのみでお礼する」機能のリリースについて

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');

A 回答 (1件)

どのjcode.plでしょうか?


改造されていない限り、jcode.plはUnicodeに対応していません。
@contentsがUTF-8だったりしたら、jcode.plでは対応できません。

Perlが古い等の理由が無いのなら、Encodeモジュールを使いましょう。

この回答への補足

回答ありがとうございます。
普通のjcode.plですが、メール送信の日本語文書はHTMLのjavascriptで1行入力の文字列をencodeURIしてcgiのパラメータにしています。
cgiではこの文書を蓄積してメール送信しています。

日本語はUTF-8コードの可能性があります、encodeURIの変換又はその後でjisかsjisでcgiに渡せないでしょうか?

補足日時:2012/09/18 23:31
    • good
    • 0
この回答へのお礼

ありがとうございました、頂いた回答をヒントに以下のようにして解決しました。

use Jcode;
$subject = Jcode::convert( $subject, "jis", "");
$contents = Jcode::convert($contents, "jis", "");

お礼日時:2012/09/19 13:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A