ファイルをダウンロードする ASP.NET Web ページで日本語ファイル名が文字化けする

聞かれたので,回避策を伝えた。

ASP.NET 1.0, 1.1 や Internet Explorer の設定では、これらの現象を回避することはできません。ファイル名に使用する文字をご検討ください。 なお、ASP.NET Web アプリケーションにて Content-Disposition を含む HTTP ヘッダーで日本語文字列を使用する場合は、下記のように URLEncode することで、ある程度の問題を回避することができます。

このサンプルコードって

Response.AppendHeader("Content-Disposition","attachment; filename=" & HttpUtility.UrlEncode("日本語") & ".txt")

が正解なんだよね。

こんな感じで使うと良いよ。
        Dim ShiftJisEncode As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift-JIS")

        Response.AppendHeader("Content-Disposition", _
                  "attachment; filename=" & HttpUtility.UrlEncode("価格リスト_20090301") & ".txt")
        Response.ContentType = "application/octet-stream"
        Response.BinaryWrite(ShiftJisEncode.GetBytes("品名,価格"))
        Response.BinaryWrite(ShiftJisEncode.GetBytes("ASUKA YAMATO SH,12800JPY"))
        Response.End()