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