[Web] mailtoリンクでの日本語の文字化け | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

HTMLに"mailto:"リンクを仕込んでおくと、宛先、件名、本文などがプリセットされたメーラーの新規メッセージフォームが立ち上がります。

ところが、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リンクで日本語を使わない
くらいしかなさそうですね。