Internet Explorer 7 または 6.0 の [ダウンロード] ダイアログ ボックスで [開く] ボタンにてファイルを開く場合、タイトル バーに意図しないファイル名が表示される

文書番号: 943570 - 対象製品
すべて展開する | すべて折りたたむ

目次

現象

Windows Internet Explorer 7 または Microsoft Internet Explorer 6.0 にて Content-Disposion ヘッダーの filename を HttpUtility.UrlEncode で URL エンコードしている ASPX ページからファイルをダウンロードするため、[開く] をクリックしてファイルを開いた場合、アプリケーション ウィンドウのタイトル バーに意図しないファイル名が表示されます。

原因

Content-Disposion ヘッダーの filename が エンコード方法指定なしの HttpUtility.UrlEncode で URL エンコードされている場合、Internet Explorer はそのファイル名を UTF-8 でエンコードし、キャッシュを作成します。[ダウンロード] ダイアログ ボックスの [開く] ボタンをクリックしてファイルを開く場合、キャッシュ ファイル名をデコードせずにタイトル バーに表示するため、この問題が発生します。

解決方法

Web サーバーの管理者がこの問題を解決するには、次のいずれかの方法で操作します。
  • ファイル名を 1 バイト文字に変更します。
  • ファイル名を HttpUtility.UrlEncode でエンコードせず、Web サーバー側 (ASP.NET 2.0) の構成ファイルで globalization 要素の responseHeaderEncoding 属性に "shift_jis" を指定します。

詳細

問題の再現手順

  1. 以下の 3 つのファイル (default.html、test.aspx、test.txt) を作成します。
    <--- default.html  --->
    <html>
    <body>
    <form method="post" action="test.aspx">
    <input type="submit">
    </form>
    </body>
    </html>
    
    <--- test.aspx --->
    <%@ Page language="C#" %>
    <%@ Import Namespace="System.IO" %>
    <%
    FileStream MyFileStream = new FileStream(Server.MapPath("./test.txt"), FileMode.Open, FileAccess.Read);
    long FileSize = MyFileStream.Length;
    byte[] Buffer = new byte[(int)FileSize];
    
    MyFileStream.Read(Buffer, 0, (int)FileSize);
    MyFileStream.Close();
    
    Response.Clear();
    Response.ClearHeaders();
    Response.ClearContent();
    Response.AddHeader("Content-Length", Buffer.ToString());
    Response.AddHeader("Content-Disposition", "attachment; filename="
         + HttpUtility.UrlEncode("あいうえお.txt"));
    Response.BinaryWrite(Buffer);
    Response.Flush();
    Response.End();
    %>
    <--- test.txt --->
    TEST
    
  2. 手順 1 で作成した 3 つのファイルを IIS の同じディレクトリに配置します。
  3. Internet Explorer を起動し、手順 2 で公開した Web ページ default.html にアクセスします。
  4. クエリ送信ボタンをクリックします。
  5. ファイルの [ダウンロード] ダイアログ ボックスが表示されたら、[開く] ボタンをクリックします。

結果

アプリケーションのタイトル バーに意図しないファイル名が表示されます。

関連情報

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
436616 ファイルをダウンロードする ASP.NET Web ページで日本語ファイル名が文字化けする

プロパティ

文書番号: 943570 - 最終更新日: 2012年8月21日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
  • Windows Internet Explorer 7 in Windows Vista
  • Windows Internet Explorer 7 for Windows XP
  • Windows Internet Explorer 7 for Windows Server 2003
  • Microsoft Internet Explorer 6.0
キーワード:?
kbharmony kbexpertiseinter kbtshoot kbsample KB943570
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com