Şu anda jQuery-File-Upload kullanıyorum. Bazı dosyaları bir Japonca veya Çince dosya adıyla yükleyebilirim ve dosya adının, örneğin, tarayıcının hata ayıklama modunda "お 疲 れ で で す .txt" veya "测试 文档 .txt" olduğunu, ancak arka planda (Java) olduğunu görebiliyorum. “ã Šç – ²ã‚Œæ§˜ã §ã ™ .txt” ve “测 è¯ • æ– ‡ æ¡ £ .txt ”haline gelirler.
Bir keresinde formAcceptCharset değerini UTF-8 olarak ayarlamayı denedim ancak işe yaramıyor.
Soru:
Çoklu dosya formatı ayrıştırılırken Java tarafında doğru dosya adı nasıl alınır?Japonca ve Çince için dosya adı kodlama sorunu yüklendi
Şimdiden teşekkürler.
BTW aşağıdaki verilerim
-----------------------------25382434931419
Content-Disposition: form-data; name="file"; filename="�疲れ様��.txt"
Content-Type: text/plain
....
Aslında Java kodlarını
Add Stephen C halen Java tarafında hiçbir şey,
@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);
}
emin java kodu – Esailija
Değil gösterir, ancak Çinli/Japon karakterler 'değildir
} UTF-16 'kodlanmış ? – Rob
@Rob Tüm unicode kodlamaları (UTF'ler), tanım gereği tüm unicode karakterleri kodlayabilir. Sadece farklı durumlar için optimize edilmiştir. – Esailija