none
IE7にオンライン・ストレージやWebメールで日本語ファイル名が化ける不具合 RRS feed

  • 質問

  • WebDAVでファイルをダウンロードする際に、
    Internet Explorer 6までは発生しなかったのですが、
    Internet Explorer 7ではファイル名が文字化けすることがあり、
    ITproにも
    http://itpro.nikkeibp.co.jp/article/NEWS/20061129/255256/
    のとおり、記載がありました。

    IE7に日本語ファイル名が化ける不具合があり、
    オンライン・ストレージ系サービスでファイルをダウンロードするときや
    Webメールで添付ファイルをダウンロードするときなどに発生する
    とのことで、
    マイクロソフトはIE7のこの問題について「原因を調査しており、
    判明し次第、サポート技術情報としてWebに情報を掲出する予定」と
    書いてありますが、対応の程はいかがでしょうか。

    よろしくお願いします。
    2008年5月20日 2:32

回答

すべての返信

  • 下記のサイトの現象ではないでしょうか。
    Internet Explorer 7 を使用して Web ページからファイルをダウンロードするとファイル名が変更される
    http://support.microsoft.com/kb/933133/ja

    既に修正プログラムは出ているようです。

    2008年5月20日 7:00
    モデレータ
  • VistaのPCでIE7を使用しています。

    Windows Updateで最新の状態に更新していますので、

    Windows Vista 用 Internet Explorer 7 の累積的なセキュリティ更新プログラム

    も適用していますが、現象が出ています。

     

    但し、

    http://support.microsoft.com/kb/933133/ja

    の最終更新日が2008年3月4日になっていますが、

    3月4日以降のPC更新履歴に

    "Internet Explorer 7 の累積的なセキュリティ更新プログラム"

    は無い状態です。

     

    本日までのWindows Updateで最新の状態にしていても

    現象が出ていますので、よろしくお願いします。

    2008年5月20日 9:37
  • 元の内容は http://support.microsoft.com/kb/933133/ja の内容で十中八九間違いないですね。 調べてみましたが今のところ Regession はなさそうです。

    Windows Vista の場合、KB933133 が含まれた累積 FIX である [MS07-045] http://support.microsoft.com/kb/937143/ が適用されているはずですので、これがインストールされているかどうか確認されるとよいと思います。

     

    #更新履歴からも確認できますが、検索ができず、わかりにくいので、下記のような Power Shell スクリプトを使ってファイルに書き出した後に確認されるのがよいかもしれません。

    例:

    get-wmiobject win32_QuickFixEngineering | Select-object {$_.HotFixID} > hotfix.txt

     

    この hotfix.txt の中に KB937143 が入っていれば、修正はインストールされている事になります。 この状況でも現象が発生するようであれば、KB933133 と異なる原因で発生している可能性がありますので、その場合は再現手順を添えて弊社プロフェッショナル サポートを利用される事をお勧めします。

    2008年6月2日 6:19
  • KB937143は、2007年9月5日にインストールしていました。
    現在は、「最終更新日2008年3月4日、リビジョン 6.1」で公開されていて、
    「新しい更新プログラムに置き換えられました」となっていますので、
    最新版のKB937143を適用した後、現象が出るかどうか確認したいと思います。
    わかり次第、報告しますので、しばらくお時間を下さい。

    2008年6月9日 9:11
  • こんにちは。

    フォーラムオペレータの鈴木裕子です

     

    Yukari Saito さん、その後いかがでしょうか?

     

    適用後のご報告をお待ちしたいところですが、
    みゃう さん、弊社 鹿島の情報を多くの方に活用していただきたく、

    勝手ながら私のほうで回答チェックを付けさせていただきました。

    Yukari Saito さんはチェックの解除もできますので、もし不適切でしたら、修正をお願いします。

     

    回答チェックはスレッドの終了という意味ではありませんので、

    情報がありましたら、引き続きご投稿くださいね!

     

    2008年7月8日 8:17
    モデレータ
  • マイクロソフト社で、
    Windows Live SkyDriveでも再現すること、
    また、IIS に配置した、HTML ファイルのリンクから、同じファイル名のテキストファイルの
    ダウンロードを試みた場合にも、現象が再現することが確認できたとのことで、
    下記のような回答をいただきましたので、報告します。
    
    
    ● 発生要因について
    =======================
    結論から申し上げますと、お問い合わせの現象は、Internet Explorer (以降 IE) のインターネット一時ファイル内のキャッシュファイルのフルパスの長さが、IE の制限値である上限 256 byteを超えた為の現象であると考えられます。
    
    保存されたキャッシュファイル名が、canonicalize (正規化)されたUTF-8 を使用して保存される場合、
    日本語1文字は9バイトに変換されます。
    そのため、長いファイル名を使用した場合、上限値の256 byte に到達しやすくなります。
    
     - canonicalize (正規化) について
     IE はキャッシュファイルを生成する際、ファイルへの URL を元にキャッシュファイル名を決定します。
     また、"UTF-8 エンコードされたファイル名をキャッシュ作成の時点でデコードしない" のは、IE の既定の動作になります。
     UTF-8 文字コードを使用した場合、日本語一文字を表すために、9 byteを必要とします。
    
     例:
     「あ」 → 「%E3%81%82」
    
    ● 回避策について
    =======================
    誠に申し訳ございませんが、お問い合わせの現象は IE の制限による動作に伴って発生している現象となる為、
    「ファイル名を短くする」 または、
    「ファイル名に ASCII 文字を使用する」
    「インターネット一時ファイルのフォルダを短いパスに移動する」
     などのいずれかの方法にて、キャッシュファイルのパスの長さが短くなるような方法の導入をご検討頂ければ
    と存じます。
    
    ※ パスの短いフォルダを使用することによって、最大 256 バイトのパスの中で、
      インターネット一時ファイルのファイル名の部分を長く使用することができます。
    
    ※ 通常の HTML ファイルのリンクからファイルをダウンロードする場合であれば、Web
    サーバー上の HTTP ヘッダに content-disposition ヘッダ (Content-Disposition: attachment; 
    filename="<ファイル名.拡張子>" を付与する>>  回避策もございますが、お問い合わせの状況/環境
    においては、この方法の導入は難しいと考えております。
    
    ● Internet Explorer でダウンロードできるファイル名の上限値について
    =======================
    IE は、ダウンロードするファイルを一時的にインターネット一時フォルダにキャッシュします。
    インターネット一時ファイル内のキャッシュファイルへのパスの長さには、256 byte
    の上限値があります。
    なお、このパスの長さを変更することは出来ません。
     (また、Windows OS 上においても、ファイルパスの長さに上限値があり、これは 260
     byte になっています。)
    
    なお、キャッシュ ファイル名が上限値を超えた場合は、上限値の範囲内にバイト数が収まるように、
    ファイル名が切り詰められます。
    この切り詰められ方は、OS や IE のバージョン、Content-dispositionヘッダーの有無に
    よっても異なります。
    
    以下は、各 OS のデフォルトのインターネット一時ファイルのパスです。
    下記の "ドライブ名:" を除いた長さは、最大で 256 バイトまで使用することができます。
     (換算するバイト数には、¥ や . も含まれます)
    
    ※ Windows 2000/XP/2003 の場合
    ------------------------------------
     ドライブ名:\Documents and Settings\<ユーザー名>\Local Settings\Temporary
     Internet Files\Content.IE5\<半角8文字のランダムな文字列>\<ダウンロードするファイル名>[1 から始まる連番数字].拡張子
    ------------------------------------
    
    ※ Vista の場合
    ------------------------------------
     ドライブ名:\Users\<ユーザー名>\AppData\Local\Microsoft\Windows\Temporary
     Internet Files\Content.IE5\<半角8文字のランダムな文字列>\<ダウンロードするファイル名>[1 から始まる連番数字].拡張子
    ------------------------------------
    
    仮に、「domains」というドメインに参加している端末に、「i-hkato」というユーザーがログインした場合、
    <半角8文字のランダムな文字列>までのPath のバイト数は、計 101 byte になります。
    
     \Users\i-hkato.domains\AppData\Local\Microsoft\Windows\Temporary Internet
     Files\Content.IE5\KWAW98B2\
    
      [1 から始まる連番数字].拡張子(例えば [1].txt) は、7 byte になります。
     これらを合計すると、261 byte になり、Windows のファイル Path 上限値 (260
     byte) および、IE の キャッシュファイルの上限値 (256 byte) の両方を超過しますので、256 byte に
    収まるようにファイル名が切り詰められます。
    
    ● IE6 や Vista SP1/IE7 では発生しなかったという件について
    =======================
    インターネット一時ファイルのフルパスの上限値を超えた場合にファイル名が切り詰められる現象は
    IE6 でも発生します。
    
    前述の検証環境と同じドメイン ユーザー名で確認を行いましたところ、現象の出方はIE7 とは若干異なりますが、
    ファイル名をより長くした場合に切り詰められる現象は IE6SP2でも再現しました。
    なお、Vista SP1/IE7 でも再現することを確認しております。
    
    2008年8月8日 4:40