人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CGIの質問です。いちばん下の「この質問・回答へのコメント」に記載の内容は誕生日にメール配信するCGIの一部です。
一部の方から配信されるメールが文字化けして見えないとの指摘があります。
恐らく”print "Content-type:?”の箇所に問題があると思うのですが、CGIの知識が浅く、私の環境では文字化けしないため確かめようがありません。
文字化けしないようにするにはどのように修正すればよいのでしょうか?
CGIの知識が浅いため、解決方法そのものを教えていただければうれしいです。
解決にいたる完全な回答していただいた最初の回答者の方には300ポイントを差し上げます。よろしくお願いいたします。

●質問者: icta
●カテゴリ:ウェブ制作
✍キーワード:CGI print かめ コメント ポイント
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 牛乳先生(tukihatu)
●500ポイント

このCGIで化けないのが逆に不思議です^^;

とりあえずパッと見た感じ、エンコードが多種多様になっているところが原因ですね…EUCとかsjisとか

とりあえずCGIのエンコードを一つにしましょう。

sjisでいいなら、まずCGI本体と読み込むデータのエンコードをSJISにします。

そして

To:やFrom:に入っている変数はエンコードしない(&jcode'convert(*from, 'euc');とか外す)

submitは&jcode'sjis2jis(*subject);でjisにした後、base64にエンコードして"=?iso-2022-jp?B?$subject?="とする

http://home.kanto-gakuin.ac.jp/~ahero/perl/net/mail/mail_title.s...

>||print MAIL "To: $email\n";

print MAIL "From: $myaddress\n";||<

の後に

>||print MAIL "Content-Type: text/plain; charset=iso-2022-jp\n";

print MAIL "Content-Transfer-Encoding: 7bit\n";||<

を追加

print "Content-type: image/gif\n\nGIF89a\1\0\1\0\200\0\0\0\0\0\0\0\0!\371\4\1\0\0\0\0,\0\0\0\0\1\0\1\0\0\2\2D\1\0\n";

は削除

その他の&jcode'convert(何か,'sjis');になっているものはすべて外す

http://internet.watch.impress.co.jp/www/article/1999/1122/specia...

その他にも問題がありそうですが、ひとまずエンコードのあたりをいじってみると解決するかもしれません。

◎質問者からの返答

早々の回答ありがとうございます。

思った以上に修正箇所が多く、ご指摘の修正内容が私の知識が浅いのが原因なのですが残念ながらよく理解できませんでした。

文字コードはsjisを使用しております。

理解不十分のまま私自身で修正して正常に動かなくなることを大変心配しております。

このようなことをお願いするのは心苦しいのですが、修正した完全なコードを記載していただけませんでしょうか?

何卒ご理解の上、お力添えいただければ幸いです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ