Subject: Content-Disposition vs RFC2231 vs IE

From: Julian Reschke <[email-masked]>
Date: Tue, 13 Jan 2004 20:58:06 +0100

Hi,

sorry for the following user-agent specific question, but as there's 
only little traffic here and *knowing* that the readers of this list 
have exceptionally knowledge about clients as well...

My server uses the "Content-Disposition" header to force (encourage) 
user agents to actually download the content upon GET 
("Content-Disponsition: attachment"). I also need to specify the 
filename because it's different from the last path segment (so I use 
"filename=" as well). Filenames may contain any Unicode character though.

RFC2231 (updating RFC2047) solves that nicely, and Mozilla works just 
fine with that. The encoding defined in RFC2047 is a bit more complex, 
but I got that working with Mozilla as well.

The real issue is -- surprise -- Internet Explorer. Microsoft already 
has confirmed that IE6 does not support RFC2231, and that there are no 
plans to change this for IE6. I couldn't get RFC2047-based encoding 
working in IE6, either (if anybody got that working, please follow up...).

What in fact *does* seem to work for at least european versions is to 
UTF-8-encode, then URL-escape the filename, and to use that as valuefor 
"filename=". For some reason, IE seems to decide that this needs to be 
unescaped, and does the "right" thing. However, this seems to fail in 
Asian versions of Internet Explorer (notably Korean).

So if anybody knows a reliable way to send non-ASCII characters in 
filenames through the content-disposition header to Internet Explorer, 
I'd be grateful to hear about that.

Thanks,

Julian