S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

ファイルダウンロード時の日本語ファイル名の文字化け

ファイルダウンロード時に、ファイル保存ダイアログで「保存」すれば、HTTPヘッダで指定したファイル名で保存できるが、「開く」と文字化けしたファイル名で開かれる。


ファイルをダウンロードする ASP.NET Web ページで日本語ファイル名が文字化けする
下記のように記述されてるだけあって、HttpUtilityクラスのUrlEncodeメソッドによるエンコードに相当する対処はしたものの改善せず。

しかし、上記の対処を行っても、前述の通り本来 Internet Explorer では、Shift-JIS のファイル名以外を正常に扱うことができないため、いくつかのシナリオ (SmartNavigation の併用、非常に長い日本語ファイル名の設定など) で文字化けが発生したり、ファイル名が短く切り詰められたり、保存ダイアログに aspx のファイル名が表示されてしまう、といった現象が発生する事が確認されています。


ASP.NET 設定スキーマ(Web.config)のglobalization要素をどう設定すればえんじゃ?ってことで探して、下記のような設定を追記して解決した(イントラでIE6のみ)。
ASP.NET Web ページで日本語ファイル名が文字化けするときの対策 globalization 要素

<system.web>
    <globalization responseHeaderEncoding="shift-jis" />
</system.web>

"shift-jis"(ハイフン)と"shift_jis"(アンダースコア)はどっちでもいいみたい。