Aktualnie używam urządzenia jQuery-File-Upload. Mogę przesłać pliki z japońską lub chińską nazwą pliku i widzę, że nazwa pliku to na przykład "お 疲 れ 様 す す .txt" lub "测试 文档 .txt" w trybie debugowania przeglądarki, ale w zapleczu (Java) , stają się "ã Šç-²ã,Œæ§~㠧㠙 .txt" i "æμ <è¯ • æ- ‡ æ¡ £ .txt".
Próbowałem ustawić formAcceptCharset na UTF-8, ale to nie działa.
Pytanie:
Jak uzyskać poprawną nazwę pliku po stronie Java podczas analizowania danych MultipartFormData?Przesłany kodowanie nazwy pliku dla języka japońskiego i chińskiego
Z góry dziękuję.
BTW Oto moje dane
-----------------------------25382434931419
Content-Disposition: form-data; name="file"; filename="�疲れ様��.txt"
Content-Type: text/plain
....
Dodaj kodami Java
W rzeczywistości zrobiłem nic boku Java Obecnie
@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);
}
pokazać kod java – Esailija
Nie jestem pewien, ale nie są japońskie/chińskie znaki 'kodowane UTF-16' ? – Rob
@Rob Wszystkie kodowania Unicode ('UTF's) mogą z definicji kodować wszystkie znaki Unicode. Są one zoptymalizowane tylko dla różnych przypadków. – Esailija