18
HTTPでContent-Dispositionヘッダーのファイル名パラメーターをエンコードする方法
Web ブラウザーで直接レンダリングするのではなく、リソースを強制的にダウンロードしたいWebアプリケーションは、フォームのHTTP応答でヘッダーを発行します。Content-Disposition Content-Disposition: attachment; filename=FILENAME filenameパラメータは、リソースは、ブラウザによってダウンロードされているにファイルの名前を提案するために使用することができます。ただし、RFC 2183(Content-Disposition)では、セクション2.3(ファイル名パラメーター)で、ファイル名はUS-ASCII文字のみを使用できると述べています。 現在の[RFC 2045]文法は、パラメーター値(およびContent-Dispositionファイル名)をUS-ASCIIに制限しています。ファイル名に任意の文字セットを許可することは非常に望ましいことですが、必要なメカニズムを定義することはこのドキュメントの範囲を超えています。 それにもかかわらず、今日最も人気のあるWebブラウザーが非US-ASCII文字をまだ許可しているように見えるという経験的証拠があります(標準がないため)、ファイル名のエンコードスキームと文字セットの仕様に同意しません。次に、ファイル名「naïvefile」(引用符なし、3番目の文字がU + 00EFの場合)をContent-Dispositionヘッダーにエンコードする必要がある場合、人気のあるブラウザーで採用されているさまざまなスキームとエンコーディングは何ですか。 この質問のために、一般的なブラウザは次のとおりです。 Firefox インターネットエクスプローラ サファリ グーグルクローム オペラ