On Wed, 2013-06-05 at 19:54 +0000, Brad Medinger wrote: > I am using HttpClient 4.2.2 to upload a file with non ascii characters in the > name using a multipart request. The issue I'm running into is the character > encoding used for the filename in the header is always US-ASCII instead of > using the charset on the HttpMultipart MIME entity. When constructing a new > MultipartEntity I pass in a mode of STRICT which, after looking at the > source, I found will always use MIME.DEFAULT_CHARSET (US-ASCII). If I use > the BROWSER_COMPATIBLE mode then the specified charset is used, but this mode > will only write Content-Disposition and Content-Type headers. Is there a > reason that a multipart request with a mode of STRICT will always use > US-ASCII for header values? > > Thanks, > Brad >
This is due to the requirement of the MIME specification. Non-ASCII characters are not allowed in MIME headers and must be escaped using Base64 or Quote-Printable encoding as described in RFC 2047 [1]. For more complex manipulations with MIME formatted content you might want to use mime4j [2] instead of HttpMime Oleg [1] http://tools.ietf.org/html/rfc2047 [2] http://james.apache.org/mime4j/index.html --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
