Webサイトの作成でメーラーを起動させる方法として
aタグとmailtoがある。mailtoリンクはさらに
あらかじめタイトルや本文を入れることができる。
これを使ってメール作成の効率をアップさせようと
思ってやってみたら文字化けしまくりです
最初からShift-JISだと問題なくできるのですが
EUC-JPとかUTF-8だと文字化けします。
いろいろ悩んで解決できたので対処方法をメモ
解決策としては、PHPで文字コードを変換して
そのあとでさらにエンコードをかけます。
これでOKだと思ったら、mailtoでは文字数制限があるようで
多すぎるとメーラーが起動しません。
やられましたo(TωT )
私が調べた感じだと全体で255バイトらしいです。
aタグとmailtoがある。mailtoリンクはさらに
あらかじめタイトルや本文を入れることができる。
これを使ってメール作成の効率をアップさせようと
思ってやってみたら文字化けしまくりです

最初からShift-JISだと問題なくできるのですが
EUC-JPとかUTF-8だと文字化けします。
いろいろ悩んで解決できたので対処方法をメモ

解決策としては、PHPで文字コードを変換して
そのあとでさらにエンコードをかけます。
$title = "タイトル";
$title = mb_convert_encoding($title, 'Shift-JIS', 'EUC-JP');
$title = urlencode($title);
$body = "本文";
$body = mb_convert_encoding($body, 'Shift-JIS', 'EUC-JP');
$body = urlencode($body);
<a href="mailto:xx@test.xx?subject=タイトル&body=本文">メーラー起動</a>
これでOKだと思ったら、mailtoでは文字数制限があるようで
多すぎるとメーラーが起動しません。
やられましたo(TωT )
私が調べた感じだと全体で255バイトらしいです。