掲示板に戻る




文字化けについて 投稿者: うえむら
いつもお世話になります。

注文メールの漢字の文字化けが発生するのですがこれの対策はcgi側で出来るのでしょうか。
「髙」などの文字が化けます。
No.284452020/7/22(Wed) 17:52:26 Res


Re: 文字化けについて 投稿者: えふ
機種依存文字なのでメールの文字コードが
JISの場合は文字化けします。
http://cgipal.com/toku.zip
こちらをダウンロードして解凍すると
toku.plというのが出来ますので
それをサーバーの
cgi/lib/
の中にアップして
cgi/lib/cart/cart.plの
2609行あたりの
if($CF::yen){
     $mailbody=~s/¥/\\/g;
}
の下に
unless(-e 'lib/toku.pl'){
&main::error("lib/toku.plがありません。");
}
require 'lib/toku.pl';
$FORM{'name1'}=&TOKU::henkan($FORM{'name1'});
$mailbody=&TOKU::henkan($mailbody);

と追加してください。
どのような文字に変換するかは
toku.plをテキストエディタで開いてみるとわかります。
'髙'=>'たか',
と設定しているので
髙は"たか"と変換します。
No.284482020/7/23(Thu) 13:55:04 Res


Re^2: 文字化けについて 投稿者: えふ
名前に文字化けの文字がない場合は
$FORM{'name1'}=&TOKU::henkan($FORM{'name1'});
は削除してください。
No.284502020/7/24(Fri) 0:28:54 Res


Re^3: 文字化けについて 投稿者: うえむら
有難うございます。
やっと時間が出来ましたので変更してみました。
「髙」が「たか」になりますが
「髙」のままメールさせる方法はありますでしょうか。
No.284512020/8/15(Sat) 14:08:08 Res


Re^4: 文字化けについて 投稿者: えふ
元に戻して
cgi/lib/mail.plの
23行の
$mailbody=&MakeMailbody($mailbody);
を削除

34行の
print MAIL "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n";
print MAIL "Content-Transfer-Encoding: 7bit\n\n";

print MAIL "Content-Type: text/plain\; charset=\"UTF-8\"\n";
print MAIL "Content-Transfer-Encoding: 8bit\n\n";
に変更

47行の
$fromname=encode('jis',decode('utf8',$fromname));
を削除

62行の
$sub=encode('jis',decode('utf8',$sub));
を削除

以上です。
No.284522020/8/16(Sun) 6:08:34 Res