web作成、cgiの初心者です。
現在postmailを利用してメールフォームを作成しました。エンコーディングはutf-8です。作成したメールを送ると、受け取ったらタイトル以外全て文字化けしています。
ググってみるといろんな方の方法があり、かなり改造をしないといけないようでいくつか試してみましたが、どうもうまくいきません。
出尽くしているのかも知れませんが、私の理解では解決することができません。よろしければ解決方法、もしくはベストなサイトを教えてくださいませ。
お手数おかけしますが、よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
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
────────────────────────────
No.2
- 回答日時:
> require Encode;
これじゃ駄目だと思います・・・
use Encode;
Encode::from_to($key, 'utf8' => 'cp932');
Encode::from_to($val, 'utf8' => 'cp932');
こうでは?
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にしてもパフォーマンスの改善にはならないかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Gmail 過去のGoogleアカウントのログイン 1 2022/08/09 20:15
- Gmail OCNメールの自動転送につて 1 2022/04/21 16:36
- Illustrator(イラストレーター) Illustrator アンカーポイント選択について 3 2023/01/30 12:31
- その他(メールソフト・メールサービス) メールアドレスに大文字を含んだメールの仕分けができない。 1 2022/04/28 12:02
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- Outlook(アウトルック) アイホンで撮った写真を一枚だけPCに移し画像を縮小してWebメールに添付して送信する方法 1 2022/04/22 15:33
- その他(プログラミング・Web制作) このWEB用語、WEB文章、意味が分かりますか? 理解できない人が多いようなんですが・・・ 7 2022/10/22 09:13
- 画像編集・動画編集・音楽編集 inkscapeで作成した図の保存の仕方とその保存したファイルの編集の仕方 1 2022/09/22 09:33
- ビジネスマナー・ビジネス文書 赤文字の文脈について(その2) 3 2022/08/04 08:54
- Perl perlについての質問 2 2022/10/17 15:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
utf-8でメールを送信すると件名...
-
応募フォームなどの住所欄で最...
-
ESC/Pのテキスト印字の制...
-
これはなんて文字コードかわか...
-
&jcode'convert(しても文字化け...
-
ポインター引数の関数でコンパ...
-
UTF-8で5~6バイトになる文字コ...
-
エクセルシート名の制限を変更...
-
COBOLのCOMP形式について
-
char str[256]の256の意味は?
-
Excel VBA メール作成について ...
-
ビットスワップとバイトスワッ...
-
10Mバイトて文字数に すると何...
-
number 改行が追加できない
-
stable diffusionのエラー
-
バイナリとBCDコード
-
Rstudioによるテキストマイニン...
-
printfの%eで指数部分の桁数を...
-
ListView重複データ削除
-
ピクセル,dpiから容量(バイト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
&jcode'convert(しても文字化け...
-
ESC/Pのテキスト印字の制...
-
応募フォームなどの住所欄で最...
-
postmail ver4.3でメールを送る...
-
CGIメールフォームのメールが文...
-
SQLServerへの出し入れで文字化け
-
CGI掲示板の文字化け
-
utf-8でメールを送信すると件名...
-
JavaScriptからCGI
-
CGI(Perl)の文字化けについて
-
全角カタカナチェックについて
-
中国語のためのアンケートフォ...
-
文字化けとパスワード変更
-
文字コードsjisをUTF8に書き換...
-
perlで英数字を取り出すには?
-
ポインター引数の関数でコンパ...
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
Excel VBA メール作成について ...
-
char str[256]の256の意味は?
おすすめ情報