
web作成、cgiの初心者です。
現在postmailを利用してメールフォームを作成しました。エンコーディングはutf-8です。作成したメールを送ると、受け取ったらタイトル以外全て文字化けしています。
ググってみるといろんな方の方法があり、かなり改造をしないといけないようでいくつか試してみましたが、どうもうまくいきません。
出尽くしているのかも知れませんが、私の理解では解決することができません。よろしければ解決方法、もしくはベストなサイトを教えてくださいませ。
お手数おかけしますが、よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
おそらく、Shift-JISの文字であっても強引にUTF-8と解釈して変換したのが文字化けの原因ではと思います。
文字コードを推測して変換するようにしました。
これでも文字化けは起こりますでしょうか?
642、643行目の以下を
&jcode::convert(\$key, 'sjis');
&jcode::convert(\$val, 'sjis');
↓ ↓
use Encode qw(from_to);
use Encode::Guess qw(cp932);
for my $data ( $key, $val ) {
my $enc = guess_encoding($data);
my $char_code = ref $enc ? $enc->name
: $enc =~ /utf8/ ? 'utf8' : 'cp932';
from_to($data, $char_code => 'cp932');
}
に変更。
>No.2さん
useを使うとモジュールをロードをして必ず実行されるので、必要なときにロードされるrequireにしてみました。
ただコードをよく見ると、この部分は必ず実行されるようなので、requireにしてもパフォーマンスの改善にはならないかもしれません。
No.2
- 回答日時:
> require Encode;
これじゃ駄目だと思います・・・
use Encode;
Encode::from_to($key, 'utf8' => 'cp932');
Encode::from_to($val, 'utf8' => 'cp932');
こうでは?
No.1
- 回答日時:
ダウンロードして中身を見てましたが、以下の修正でうまくいきますでしょうか?
642、643行目の以下を
&jcode::convert(\$key, 'sjis');
&jcode::convert(\$val, 'sjis');
↓ ↓
require Encode;
Encode::from_to($key, 'utf8' => 'cp932');
Encode::from_to($val, 'utf8' => 'cp932');
に変更。
早速のアドバイス有難うございます。
やってみたのですが、全体としては文字化けの量は減ったのですが、違う個所が文字化けになりました。
以下のような感じです。以前は送信日時以下も文字化けしていました。
アドバイスありましたら、よろしくお願い致します。
以下フォームより送信したメール内容です
***********************************************************
このメールは自動送信でお送りしています。
以下のとおりフォームメールより送信がありました。
────────────────────────────
▼送信内容
────────────────────────────
?????O = ?????? aaa ?????? aaa
???N?? = aa
?A????\??d?b??? = aaa
???[???A?h???X = aaa
?????O = ?????? aaa ?????? aaa
???]?c??? = ?????c???
???????z = ?O?`?P?O?O???~
??????????? = ?P??
??????N?? = ?P?`?R?N
???X??????? = ???
??ω?\?z(????) = ?P???~
???p??(?K?{) = aaa
────────────────────────────
送信日時 : 2009/12/16(Wed) 22:41
ブラウザ : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB6.3; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
ホスト名 : 222.226.122.247
────────────────────────────
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
古ーくからフリーのtree.cgi掲...
-
フォームを再送信しますか?
-
ChatGPTの性能は昔に比べて上が...
-
エクセルで集計したい。
-
ChatGPT
-
chatGPTみたいに画像生成出来る...
-
htmlからパラメータで、cgiに渡...
-
-T(汚染モード)でメールが送れ...
-
iDeCo
-
皆さんはGUCCIはハイブランドだ...
-
cgi-binのエラー?
-
Trees掲示板CGI(CGI-Resque氏...
-
めちゃきれい
-
number 改行が追加できない
-
生成AI画像について
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
これはなんて文字コードかわか...
-
CGI掲示板の文字化け
-
BBSの基本的なファイル操作法?
-
機械語?
-
CGIからの文字が化ける
-
SQLServerへの出し入れで文字化け
-
cgiの文章がHP上で見ると文字化...
-
utf-8でメールを送信すると件名...
-
全角カタカナチェックについて
-
ソ噂浬欺圭構蚕十申曾箪貼能表...
-
SHIFT-JIS utf-8 スクリプト
-
Apacheでも互換性
-
CGI(Perl)の文字化けについて
-
応募フォームなどの住所欄で最...
-
入力項目のチェック
-
perl cgi のエンコード SHIFT...
-
秀丸でCGIを開いたら文字化...
-
フォームメールで名前を全角の...
-
ESC/Pのテキスト印字の制...
-
Window open パラメタについて
おすすめ情報