ところが、HTMLページのエンコード、ブラウザ、メーラーの組み合わせによっては、以下のように件名や本文に日本語が含まれていると文字化けを起こすことがあります。
お問合せは<a href="mailto:test@example.com?Subject=お問合せ">こちら</a>
この文字化けは、以下のように日本語部分をURLエンコードすることで回避できることもあります。
- UTF8
- お問合せは<a href="mailto:test@example.com?Subject=%e3%81%8a%e5%95%8f%e5%90%88%e3%81%9b">こちら</a>
- Shift-JIS
- お問合せは<a href="mailto:test@example.com?Subject=%82%a8%96%e2%8d%87%82%b9">こちら</a>
ただ、それでもどんなブラウザとメーラーの組み合わせでも文字化けが起こらないという状態にすることは不可能のようです。
ブラウザの違いだけに依存するのであれば、ユーザーエージェントの情報を見て動的に日本語の処理を変えることもできますが、メーラーの違いに依存する場合はそうはいかないので困ったものです。
結局、
- 環境によっては文字化けが起こるものと割り切る
- mailtoリンクを複数用意する
- mailtoリンクで日本語を使わない