home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

サイバー日野/2002/03/07/15/PHPでのメール送信時エンコーディング

サイバー日野/2002/03/07/15/PHPでのメール送信時エンコーディング

サイバー日野 / 2002 / 03 / 07 / 15 / PHPでのメール送信時エンコーディング
id: 13 所有者: msakamoto-sf    作成日: 2002-03-07 15:45:29
カテゴリ: PHP サイバー日野 

二、三日前にPHP掲示板でメール送信時に文字化けしてしまう部分を修正したことがある。その時に散々EUCSJIS変換で悩まされたのだが、この際そのときの「コツ」を書き付けとく。

結論から言うと、例えばSubject ヘッダーに対するEUC->SJIS変換は、

$subject = i18n_convert($subject,'JIS','EUC');
$subject = tree::mime_enc($subject);

こんなカンジで済ますことができる。

tree::mime_encの中身は

function mime_enc($str){
    if(get_magic_quotes_gpc()) $str = stripslashes($str);
    $encode = "=?ISO-2022-JP?B?" . base64_encode($str) . "?=";    //Bヘッダ+エンコード 
    return $encode; 
}

とまあこんなカンジ。ようするに、
''先にEUC->JIS変換をかませた後、改めてbase64_encodeとか言うのをすれば、インターネットで標準的なエンコーディングができる''ということらしい。
じっさい、この順番で行うようになってから文字化けがぴたりと収まった。

これ・・・会員管理用のdo_mail.incとかにも適用したほうがいいかなあ・・・。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2008-11-27 08:26:08
md5:b71bd5c0f37ece55fc337b6d1a33cf08
sha1:365177b4d104b557ee548c7e9e426373dc5f4680
コメント
コメントを投稿するにはログインして下さい。