SquirrelMailの添付ファイルの文字化け

これは以前、初代万思記屋にあった記事(http://www.t2olab.com/blog1/article.php?id=14)です。

SquirrelMailを使っていて、WindowsXPから日本語名で添付ファイルをつけた場合、ブラウザ上の表示では問題がないが、同じくWindowsXPで添付ファイルをダウンロードするとファイル名が文字化けしてしまうという問題がありました。この問題を解決する方法をメモ。

SquirrelMailの公開ディレクトリ下にある ./functions/i18n.php の以下のところを、
case 'downloadfilename': $useragent = func_get_arg(2); if (strstr($useragent, 'Windows') !== false || strstr($useragent, 'Mac_') !== false) { $ret = mb_convert_encoding($ret, 'SJIS', 'AUTO'); } else { $ret = mb_convert_encoding($ret, 'EUC-JP', 'AUTO');}
SJISとなっているところを、UTF-8に書き換える(以下、参照。私の場合、家でも会社でも自分が使う端末はUTF-8対応なのでこれで問題ないです)。
case 'downloadfilename': $useragent = func_get_arg(2); if (strstr($useragent, 'Windows') !== false || strstr($useragent, 'Mac_') !== false) { $ret = mb_convert_encoding($ret, 'UTF-8', 'AUTO');

コードをみるとなるほど、ダウンロードする添付ファイル名をシフトJISコードに変換していたというわけなのですね。添付ファイルに日本語ファイル名をつけることなんて、自分で自分自身にメールする場合のみなので困らないと放置していましたが、別の件を検索中に偶然たどりついたSquirrelMail 添付ファイルの文字化けに解決方法が乗っていました。この偶然に感謝します。

<蛇足的覚書>上述の部分だけを変えると、ブラウザが名乗るuseragentがWindowsとMacを含むもの以外では、EUCに変換されることになる。

トラックバック


トラックバックは承認後に表示されます。