我目前正在使用jQuery-File-Upload。我可能上传了一些文件名是日文或中文的文件,在浏览器的调试模式下我可以看到文件名是例如“お疲れ様です.txt”或“测试文档.txt”,但在后端(Java) ,它们变成“ã�Šç–²ã‚Œæ§~ã�§ã�™.txt”和“测试文档.txt”。
我曾经尝试将formAcceptCharset设置为UTF-8,但它不起作用。
问题:
解析MultipartFormData时如何在Java端获取正确的文件名?
提前致谢。
顺便说一句,以下是我的数据
-----------------------------25382434931419
Content-Disposition: form-data; name="file"; filename="�疲れ様��.txt"
Content-Type: text/plain
....
添加Java代码
实际上我目前在Java方面什么都没做,
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String upload(InMultiPart inMP) {
while (inMP.hasNext()) {
InPart part = inMP.next();
MultivaluedMap<String, String> headers = part.getHeaders();
String fileName = null;
if (!headers.containsKey("Content-Disposition")) {
continue;
} else {
// get the file name here
fileName = parseFileName(headers.getFirst("Content-Disposition"));
}
//.....
}
//......
}
private String parseFileName(String disposition) {
int fileNameIndex = disposition.indexOf("filename=");
if (fileNameIndex < 0) {
return null;
}
int start = disposition.indexOf("\"", fileNameIndex) + 1;
int end = disposition.indexOf("\"", start);
return disposition.substring(start, end);
}