人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

フォームから携帯用メールを送信するCGIをPHPで実装したのですが、
SoftBankの絵文字が変換できません。機種はSB841SHです。
Subjectは絵文字変換されるのですが、
本文が「$Gi」のようにWEBコードの一部がが表示されます。
Webコードを本文に埋め込み、base64でエンコードしています。
ソースはShift_JISで作成しています。
機種に問題があるのか、実装に問題ががあるのか
わかる方がおりましたらご教示ください。

実装はこんな感じです。
$subject = '$Gj絵文字入り題名$Gi';
$body = '絵文字入りの$Gj本文$Gi';
// MIMEエンコーディング
$subject = "=?shift_jis?B?" . base64_encode($subject) . "?=";
$body = base64_encode($body);
// ヘッダ
$headers = "From: " . $from . "\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/plain; charset=Shift-JIS\n";
$headers .= "Content-Transfer-Encoding: base64";
// メールを送信
$res = mail($to, $subject, $body, $headers);


●質問者: macro_01
●カテゴリ:インターネット ウェブ制作
✍キーワード:?B base64 BODY CGI GI
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● deflation
●100ポイント

以下のようにエンコードをISO-2022-JPに変更してみてください。


// MIMEエンコーディング
$body = base64_encode($body);
$body = mb_convert_encoding($body,"ISO-2022-JP","Shift_JIS");

// ヘッダ
$headers = "From: " . $from . "\n";
$headers .= "MIME-Version: 1.0\n";
$header .= "Content-Type: text/plain;charset=ISO-2022-JP\r\n";
$header .= "Content-Transfer-Encoding: base64";
◎質問者からの返答

回答ありがとうございます。

回答の通り実装してみたのですがやはり本文が正しく表示できませんでした。

Gj{Bi

と表示されていました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ