The official Content-Disposition spec in RFC 2183 does not allow non-ASCII
characters to be sent. It requires them to be encoded using an extended syntax
introduced in RFC 2184.
During HTTP communication, however, ASP.NET breaks this rule by allowing
user-defined encodings on all HTTP headers (via the HTTPResponse.HeaderEncoding
property). I do not know if Apache has a similar configurable option, or if it
always uses UTF-8 unconditionally, but it is breaking the official specs as
well. Also turns out that some web servers send UTF-8, and others follow the
RFCs, depending on what UserAgent is making the request. MSIE supports UTF-8
and percent-encoded filenames, Opera supports RFC2184-encoded filenames,
FireFox supports MIME-encoded and RFC2184-encoded filenames, etc.
Original issue reported on code.google.com by gambit47 on 27 Oct 2010 at 10:29
Original issue reported on code.google.com by
gambit47
on 27 Oct 2010 at 10:29