I back-ported code from icefaces3 that sets-up the commons-fileupload's characterEncoding based on the HttpServletRequest's characterEncoding, or our parsed from HTTP headers characterEncoding, but both came back null, since the HttpServletRequest is a org.apache.catalina.connector.RequestFacade, and that gave a null characterEncoding, and no "Content-Type" header to parse the "charset" from. Further investigation found the desired "content-type" header (lower case) with the "charset", but only on the regular POSTs and not the file upload POST, so that information was stored in the session in the same place that JSF 1.2+ does, and then retrieved when dealing with the upload.
icefaces trunk
Subversion 37233
Which server OS is this running on, Windows, OS X, Linux, etc?