※ ChatGPTを利用し、要約された質問です(原文:メール送信で(1)などの丸数字の文字化けについて)
メール送信で丸数字の文字化けについて
このQ&Aのポイント
ウェブページ(charset=utf-8)からメールを送信するプログラム(Perl)について質問があります。本文中に丸数字が文字化けしてメールが届いてしまいます。
質問者はUTF-8のページからCGIでパラメータを受け取り、一部の特殊文字を置換してメールを送信していますが、丸数字についてはうまくできていません。
パラメータの受け取り方法に問題があるのか、丸数字の置換方法に問題があるのかを質問者は調査していますが、上手くいっていません。相談をお願いします。
ウェブページ(charset=utf-8)からメールを送信するプログラム(Perl)について質問があります。
本文中に
----------
(1)
↓
\x{2460}
----------
と変換されてメールが届いてしまいます。
メインのCGIでは、
use utf8;
を宣言しています。
utf-8のページから、CGIではパラメータを以下のように受けています。
my $query = new CGI;
for my $p ($query->param) {
my @v = map {Encode::decode_utf8($_)} $query->param($p);
$query->param($p, @v);
}
my $mailtext = $query->param("mailtext");
その後、 「~(波ダッシュ)」と「-(全角マイナス)」は以下のようにを強制的に置換しました。
(これは検索して見つけることができましが、丸数字については探しきれませんでした。)
$mailtext =~ tr/\x{ff5e}\x{ff0d}/\x{301c}\x{2212}/;
# UTF8フラグをON
$mailtext = Encode::decode_utf8($mailtext );
# UTF8からJISに変換
Encode::from_to($mailtext , "utf8", "jis", Encode::XMLCREF);
としてメールを送信しています。
パラメータの受け取り方に問題があるのでしょうか?
それとも丸数字などを個別に置換する方法があるのでしょうか。
色々調べて試したりしたのですがダメでした。
すみませんが、よろしくお願いいたします。