さすらいのWeb制作家、MAKOCHINがつづるブログサイト。
Web制作に関する知識を備忘録的に書いているだけのサイトです。
ほとんど自分で見るためだけに書いているような内容なので読みやすくはなっていませんが、Web制作のお役に立てれば幸いです。
ご興味のある方はどうぞ。

mailtoのsubjectに日本語を入力すると文字化けする

Pocket
LINEで送る

今日、mailtoのsubject設定で悩みました。

htmlにmailtoを設定するときに下記のようにコードを記述すると思います。

<a href="mailto:宛先のメールアドレス?subject=件名&body=本文">○○○○○</a>

subject、bodyの部分はもちろん日本語が入る場合が多いと思いますが、subjectに日本語を入れると下記のような問題が発生します。

htmlの文字コードがShift_JISでメーラーがOutlook Expressの場合だと、上記の記述で問題なくメーラーに情報が表示されます。
しかし、htmlの文字コードがutf-8の場合だと上記の記述ではsubjectが文字化けしてしまいます。

この場合、URLエンコードでsubjectの文字をShift_JISにエンコードし使用するとOutlook Expressは文字化けしなくなるのですが、Thunderbirdだと文字化けしてしまいます。

そこで今度はsubjectの文字をutf-8にエンコードし使用してみると、Thunderbirdは文字化けしなくなりましたが、Outlook Expressが文字化けしてしまいます。

これでは非常に困るので、どのメーラでも文字化けしない方法はないかと調べてみたのですが、完璧な対応する方法はないようです。
メーラーごとにそれぞれデータを受け取るときの文字コードが違うし、しかもメーラーソフトも数多くありますので全てに対応させることは無理があるみたいです。

なのでこれに対する自分なりの対応方法は、
(1)エンコードがShift_JIS用とutf-8用と二つのmailtoリンクを設置する。
(2)どちらか一つを切り捨てる。
この2つのどちらかで対応するしかないと思われます。

現状で調べた段階ではどうにもならなそうですが、何かもっと良い対応策が見つかりましたら紹介しようと思います。

【URLエンコード変換サイト】

カテゴリー:html, HP制作

コメントを残す

コメント内容