スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

mailtoで件名を設定したときの文字化け対策

リンクをクリックするとメーラーが立ち上がるようにするには、href="mailto:sample@example.com"のように記述します。今回、メーラーを立ち上げて、さらに件名まで設定する必要があり、文字化けに悩まされたのでその対処法をメモ。

<a href="mailto:sample@example.com?subject=件名を設定">

このように日本語で直接記述することが可能ですが、環境によっては文字化けの可能性があります。(例えば、文字コードがUTF-8であれば、Macだと問題ないがWindowsだと文字化けなど)

そこで、Windowsでも文字化けしないように、件名のテキストをShift-JISでURIエンコードしてから記述するようにします。

<a href="mailto:sample@example.com?subject=%8C%8F%96%BC%82%F0%90%DD%92%E8">

これでWindows環境でも文字化けしないように設定できます。が、次はMacで文字化けします。。

仕方がないので、MacとWindowsで処理を分岐して記述するようにしてみます。そのために、JavaScriptでユーザーエージェントを判別して分岐する一例は以下のとおり。

$(function() {
	var ua = navigator.userAgent.toUpperCase();
	if (ua.indexOf("MAC") >= 0) {
		$('a').get(0).href = 'mailto:sample@example.com?subject=件名の設定';
	} else {
		$('a').get(0).href = 'mailto:sample@example.com?subject=
%8C%8F%96%BC%82%F0%90%DD%92%E8';
	}
});

jQueryも使ってますが、使わなくても問題ないです。2行目の navigator.userAgent でユーザーエージェントを取得しています。分岐の方法はこれがベターというわけではありませんが、一例として参考まで。

関連するエントリー
JSで画像を切り替えるときのIE6対応
IEを判別するシンプルなスクリプト

新しい記事

ピックアップ

Related Posts Plugin for WordPress, Blogger...
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。