[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 メーリングリストの案内