Attualmente sto utilizzando lo jQuery-File-Upload. Posso caricare alcuni file con un nome di file giapponese o cinese, e posso vedere che il nome del file è ad esempio "お 疲 れ 様 で す .txt" o "测试 文档 .txt" nella modalità di debug del browser, ma nel backend (Java) , diventano "ã Šç-²ã,Œæ§~ã §ã ™ .txt" e "æμ <è¯ • æ- ‡ æ¡ £ .txt".
Una volta ho provato a impostare formAcceptCharset a UTF-8 ma non funziona.
Domanda:
Come ottenere il nome file corretto sul lato Java durante l'analisi di MultipartFormData?Problema di codifica del file caricato per giapponese e cinese
Grazie in anticipo.
BTW, Il seguente è i miei dati
-----------------------------25382434931419
Content-Disposition: form-data; name="file"; filename="�疲れ様��.txt"
Content-Type: text/plain
....
Aggiungere i codici Java
In realtà ho niente in Java lato attualmente,
@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);
}
mostrano il codice Java – Esailija
Non è sicuro, ma non sono i caratteri giapponesi/cinese '16' UTF-codificato ? – Rob
@Rob Tutte le codifiche unicode ('UTF's) possono codificare per definizione tutti i caratteri Unicode. Sono semplicemente ottimizzati per casi diversi. – Esailija