DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25720>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25720 MultipartElement.getFileName() returns wrong filename for non-English names Summary: MultipartElement.getFileName() returns wrong filename for non-English names Product: Struts Version: 1.1 Final Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: File Upload AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] When upload a file which has a non-English name, the upload component can not get the correct filename. The problem is caused by the following reason: MultipartIterator is using MultipartBoundaryInputStream, that has the function: private final String readLine() In that function there is : line = new String(this.line, 0, this.lineLength); This causes the byte array to be treated as if it would have been in default encoding. The corrected code should include an "encoding" class parameter, that would be initialized in the MultipartBoundaryInptStream constructor (should be the encoding of the request or the MultipartElement), and than the above code of readLine() would be changed to : line = new String(this.line, 0, this.lineLength, this.encoding); I'd like to mention that for MultipartElement.getName() and MultipartElement.getValue() the bug doesn't occur. this is thanks to the function MultipartIterator.createTextMultipartElement() that is considering the encoding at the line: String value = baos.toString(encoding); So text elements are working fine, but file elements are using the above readLine() method, and there we see the bug. This is seriously harming Struts i18n support, we really need this fix. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]