Загруженная проблема кодировки имени файла для японского и китайского
В настоящее время я используюJQuery-File-Загрузить, Я могу загрузить некоторые файлы с именем файла на японском или китайском, и я вижу, что имя файла, например, "お 疲 れ 様 で す.текст" или "测试 文档.текст" в браузерев режиме отладки, но в бэкэнде (Java) они становятся "ã Šç – ²ã‚Œæ§˜ã §ã ™.текст" и "‹µ‹ è¯ • æ– ‡ æ¡ £.текст".
Я однажды пытался установитьformAcceptCharset вUTF-8, Но это не работает.
Вопрос:
Как получить правильное имя файла на стороне Java при разборе MultipartFormData?
Заранее спасибо.
Кстати, ниже мои данные
-----------------------------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 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);
}