[PHP-users 16449]Re: mailto送信時の文字化け
Osamu Shigematsu
m5issige @ mr.hitachi-medical.co.jp
2003年 7月 3日 (木) 18:26:03 JST
重松です。こんにちは。
> RFC2368 をご覧になれば、日本語で記述した subject や body は出力する HTML
> 本体と同じ文字コード(今回の場合 euc-jp)において urlencode して出力すれば
> 上手く行くのではないかと想像できるかと思います。
$subj = "日本語";
$subj = mb_convert_encoding($subj,
mb_internal_encoding(), // from, script encoding
'JIS'); // to
$subj = base64_encode($subj); // MIME-B, いわゆる BASE64
$subj = "=?ISO-2022-JP?B$subj?="; // 組み立てます
$subj = urlencode($subj); // URL エンコ〜ド
if (strlen($url_eubj) > 60) die("長すぎ!\n");
$url = "mailto:me @ example.com?subject=$subj"; // 完成
とまあ、こんな感じでよいのではと思いますけど、試してません。
多分、単にエンコードしただけではだめだと思います。
それでいける環境もあるけど、だめな環境もあるのでは?
# そもそも RFC2368 だって、準拠してないものもあるかもだし。
というか、こういったら見もふたもないことですが、
もっと安全で確実な方法を使えばいい、そう思うのは自分だけでしょうか?
だいだい、subject= で題名渡したところで、送信者が書き換えたら、
おしまいだし、識別するだけなら、US-ASCII で十分だし。
--
Osamu Shigematsu <m5issige @ mr.hitachi-medical.co.jp>
PHP-users メーリングリストの案内