Problem beim Hochladen der Dateinamenkodierung für Japanisch und Chinesisch
Ich benutze derzeit diejQuery-File-Upload. Ich kann einige Dateien mit einem japanischen oder chinesischen Dateinamen hochladen und sehe, dass der Dateiname im Debug-Modus des Browsers beispielsweise "browser お 疲 様 す .txt" oder "测试 测试 .txt" lautet, aber im Backend (Java). werden sie zu "ã Šç – ²ã‚Œæ§˜ã §ã ™ .txt" und "测 è¯ • æ– ‡ æ¡ £ .txt ".
Ich habe mal versucht einzustellenformAcceptCharset zuUTF-8 aber es funktioniert nicht.
Frage:
Wie erhalte ich den richtigen Dateinamen auf der Java-Seite, wenn ich MultipartFormData analysiere?
Danke im Voraus.
Übrigens, das Folgende sind meine Daten
-----------------------------25382434931419
Content-Disposition: form-data; name="file"; filename="�疲れ様��.txt"
Content-Type: text/plain
....
Fügen Sie die Java-Codes hinzu
Tatsächlich habe ich momentan nichts auf Java-Seite gemacht,
@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);
}