弐条海月の とはずがたり

そこはかとなく書き綴るブログなるもの

mailtoにめいわくぅ…

仕事で作成しているHPの仕事がもうすぐ完了しそうです。同業数社のPRのためのHPを作成しておりまして…校正が戻ってきているので、その修正をしているのだけれど…。今日の問題は私にとっては初めてのケースでした。そんなお話。

HPの中に各社の紹介のページがありまして、そこに問い合わせ用のmailtoを使ったリンクボタンが付いているんです。これを押しますとメーラーが立ち上がります。問い合わせをしたい会社のメールアドレスがアドレス欄に、件名も自動で入れるのです。ところが、各社に実験でメールを送った中で、1社から「件名が文字化けしています」との連絡が入ったんですよね。

私の開発環境はWindows98SE、Firefox2.0と化石みたいなのだけれど…文字化けは起きておりませんでした。作成しているサイトはUTF-8です。もしかしたら、その辺りが原因なのか?と思い、色々調べてみますと…Windows標準のメーラー「Outlook Express」では、mailtoで記述する件名あるいは本文に日本語が使われていると文字化けする場合があるらしいんです。これは私が知らなかっただけで、ずいぶん前から知られていた問題のようです(笑)。

回避するには日本語の文字列をURLエンコードする必要があります。そこで作成しているサイトに合わせてUTF-8で件名の文字列をURLエンコードしてみたのだけれど…。私の環境では問題なくとも、やはり「Outlook Express」では文字化けします。

そこで、試しにshift-jisでURLエンコードをかけてみると…「Outlook Express」での件名の文字化けが解消されました! しかし今度は私が使っているメーラー「Thunderbird」で件名が文字化けしてしまう(泣)。

まさにあちらを立てればこちらが立たず…の状況。抜本的な解決方法としては…完全にshift-jisでページを作成するか、mailtoを使わずに問い合わせフォームなんかを作れば良いのだろうけど、今さらそれはやりたくないので、さらに調べてみました。

すると…javascriptでユーザーエージェントを取得し、それによってmailto内の件名のURLエンコードの文字コードを変換してやればかなり解決できる…というようなことが分かりました。

今回作成しているサイトはPHPにて書いておりますので、javascriptではなくPHP内で処理することにしました。ユーザーエージェントの中に「Macintosh」または「Firefox」の文字列があったなら、URLエンコードの文字コードはUTF-8に。それ以外の場合はURLエンコードの文字コードをshift-jisにするようにしたら…一応の解決をみました。

ただし、一番の問題はユーザーエージェントで取得できるのは使っているブラウザとOSであって、メーラーではないので完全な解決には至っていないことでしょうか。例えば…WindowsでFirefoxを使い、メーラーがOutlook Expressの場合はアウトかも(笑)。何か良い方法が他にあれば良いのですけれども。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

固定ページ

最近の投稿

カテゴリー





カレンダー

2012年6月
 123
45678910
11121314151617
18192021222324
252627282930  

過去の日記はこちら

キーワードで検索