※質問するときは、フォーラムの利用に関するご案内 、とりわけ 質問するときは に目を通し、Firefox のバージョンだけでなく、OS の種類やバージョンといった使用環境についての最低限の情報を書き添えることをお勧めします。
このフォーラムの過去記事に関連しそうなトピックがあったので、その内容を参照して雑駁ながらテストしてみました。
・
ダウンロードファイルの文字化け
直接の解決策ではありませんが、背景を探る上での参考ということで報告させていただきます。
(テスト条件)
「添付ファイルの文字化けテスト.odt」という日本語名のファイルを添付したメッセージを、一般的なメールクライアントから Yahoo!メールのアドレスに送信。
Windows XP SP3 上の Firefox 3.6.23 と 7.0 で(同時ではなく排他的に)Yahoo!メール(正式版)にログインし、そのメッセージを閲覧・確認のうえ、添付ファイルを保存する操作をしました。
(テスト結果)
Yahoo!メールの画面をブラウザ上で見る限りでは、3.6.23 も 7.0 も、添付ファイル名の文字化けはなく「添付ファイルの文字化けテスト.odt」という名前が正しく表示されました。
この添付ファイルを保存する操作をおこなったところ、バージョン間で差が出ました。
― Firefox 3.6.23 では、開いた保存ダイアログでも文字化けはせず、適正なファイル名のままローカルに保存できました。
保存できたファイルは、既定のアプリケーションで正常に開けました。
― Firefox 7.0 では、開いた保存ダイアログでファイル名の日本語部分が文字化けしていました。
適当なファイル名をつけて保存したものも既定のアプリケーションで開けるので、ファイル自体は破損しておらず、ファイル名のみの問題であると思われます。
(Yahoo!メールの Web 画面の状態)
Yahoo!メール のコンテンツ画面は、
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=euc-jp">
で指定されています。
3.6.23 、7.0 ともに、ブラウザ上で添付ファイル名の文字化けはなく Yahoo!メール の画面が正しく表示されているということは、送信元からのメールとそれを反映した Yahoo!メール 側の処理を、Firefox は適切な文字エンコーディングで扱えていると考えることができます。
(添付ファイルの保存操作の結果)
添付ファイルを保存する操作をした場合、Firefox から Yahoo!メール に出される HTTP リクエストは、User-Agent などバージョン固有の値以外は 3.6.23 と 7.0 で大差なく、ざっと見た限りでは決定的な問題点を見出せませんでした。
これに対し Yahoo!メール 側からのレスポンスは、3.6.23 と 7.0 で顕著な違いがありました。
― 3.6.23 の場合
Content-Disposition: attachment; filename="=?ISO-2022-JP?B?GyRCRTpJVSVVJSElJCVrJE5KOBsoQg==?= =?ISO-2022-JP?B?GyRAGyRCO3oyPSQxJUYlOSVIGyhC?=.odt"
― 7.0 の場合
Content-Disposition: attachment; filename="添付ファイルの文字化けテスト.odt"
Content-Disposition の filename が、3.6.23 の場合は ISO-2022-JP の文字コードで MIME エンコードされているのに対し、7.0 の場合はどういうわけか生の文字列が返ってきていました。
Yahoo!メール の HTML ソースの文字コード指定は euc-jp で、それが生のまま返されている感じです。
(比較テスト1)
Firefox 7.0 の User-Agent を 3.6.23 に変装して Yahoo!メール にログインし、上記(テスト結果)と同様の条件で添付ファイルの保存操作をすると、文字化けのない状態(3.6.23 と同様の状態)で保存できました。
Yahoo!メール から返ってきた Content-Disposition の filename は、上記 3.6.23 の場合と同様に ISO-2022-JP で エンコーディングされているものでした。
(比較テスト2)
素の Firefox 7.0 で Yahoo!メール の添付ファイル保存ページの文字エンコーディングを強制的に ISO-2022-JP に変更すると、ページ全体は文字化けしますが、そのままファイルの保存を実行すると、開いた保存ダイアログでは文字化けしない適正なファイル名が表示され、ローカル上にも正しいファイル名で保存できました。
(考察)
ユーザーから見た現象としては、Firefox 7.0(4.0 以降 6.0.2 まで同様か?)に不具合があるように見えます。
しかし、ブラウザと Yahoo!メール のやりとりを HTTP ヘッダで見たり、比較テストの結果から予測する限りでは、Yahoo!メール 側がブラウザの種類によって異なるレスポンスを返しているように見えます。
その結果、添付ファイルの文字化けが起こるものと起こらないものに分かれるという印象です。
しかし、
dai さんが書きました:
日本語、英語のファイル名にかかわらず、ファイルの種別(jpg, word, pdfなど)にかかわらず、メール添付ファイルを保存しようとすると、ファイル名が文字化けしてしまいます。
であれば、当方で確認できたのは日本語ファイル名の文字化けで、英文ファイル名では文字化けしませんでしたから、dai さんのところで起こっている現象はもっと複雑なのかもしれません。
ファイル名の文字化けは、日本語の文字コードとエンコーディングがらみであることが多いので、ファイルの種類(とくに拡張子)はあまり関係ないように思われます。
dai さんが書きました:
どうしたら直るか、お教え頂ければ幸いです。
改善されるかどうか保証はできませんが、
― Yahoo!メール側に問題を報告し、調査および修正を依頼する。
― Firefox 3.6 系を使う。
― User-Agent を書き換えて Firefox 7.0 を使う。
いまはこれぐらいしか思いつきません。(ご利用環境の詳細、Yahoo!メールの運用条件や操作手順の具体的な説明があれば、いまよりは手がかりがつかめるかもしれませんけど...。)
ぼくにはこの分野の専門知識がないので具体的にどこが問題なのかよくわかりません。スキルのある方からのアドバイスをいただけるとありがたいです。
長くなりましたが以上です。おかしなことを書いてたらツッコミ入れてください。