mailtoでURLエンコードした文字列を表示する

通常mailtoに日本語を設定する場合、URLエンコーディングをしてから設定します。(文字化けすることがあるため)
それをメーラーが自動的にデコードして表示してくれる仕組みになっています。

しかし、URLの引数などでURLエンコードしたまま表示したいときがあるかと思います。
そんなときはURLエンコードを二回かければできるようになります。


ちなみに、URLエンコードはphpのurlencode()を使用します。


こんな感じのがURLあるとします。
<a href="mailto:?subject=Test&body=http://chickenheartnote.co.jp/note.php?name=<?php echo urlencode(にわとり);?>">メール</a>
上記のリンクをクリックして起動したメーラーはこうなります。
タイトル:Test
本文:http://chickenheartnote.co.jp/note.php?name=にわとり

また、事前にURLエンコードした文字列を記述していても、上と同じようになります。(あたりまえ?)
<a href="mailto:?subject=Test&body=http://chickenheartnote.co.jp/note.php?name=%E3%81%AB%E3%82%8F%E3%81%A8%E3%82%8A">メール</a>

そこでURLエンコードを二回かけます。
<a href="mailto:?subject=Test&body=http://chickenheartnote.co.jp/note.php?name=<?php echo urlencode(urlencode(にわとり));?>">メール</a>

そうするとメーラーにURLエンコードされて表示させることができます。
タイトル:Test
本文:http://chickenheartnote.co.jp/note.php?name=%E3%81%AB%E3%82%8F%E3%81%A8%E3%82%8A





Top
inserted by FC2 system