2017-03-16 2 views
0

Je suis en train d'écrire un simple téléchargement de fichiers par Java et VertX et je ne peux pas corriger les noms de fichiers, par ex: gadjé zèleno_iscusinţă.pdf (Ce langage est roumanie)VertX Java télécharger filename caractères spéciaux

Voici mon code :

ctx.response() 
     .putHeader(HttpHeaders.CONTENT_TYPE, contenype) 
     .putHeader("Content-Disposition", String.format(inline; filename="gadže zèleno_iscusinţă.pdf") 
     .putHeader(HttpHeaders.TRANSFER_ENCODING, "chunked") 
     .sendFile(filePath).end(); 

Avec ce code fait le nom du fichier de téléchargement ont le mauvais format:

gad-e zèleno_iscusin--.pdf 

J'ai essayé d'utiliser URLEncoder.encode(), le code fin du nom de fichier:

.putHeader("Content-Disposition", String.format(inline; filename=URLEncoder.encode("gadže zèleno_iscusinţă.pdf")) 

Mais cela fait de tout l'espace en "+" ce qui n'est pas bon :(. gadže + zèleno_iscusinţă.pdf

Est-ce que quelqu'un connaît une méthode pour faire ce nom dans le bon format? S'il vous plaît, aidez-moi ...

Répondre

0

Je l'ai fait .... Utilisez UTF-8 et ISO-8859-1. Le code ressemblera à ceci.

String fileName = "gadže zèleno_iscusinţă.pdf"; 

String encodeFileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1"); 

ctx.response() 
     .putHeader(HttpHeaders.CONTENT_TYPE, contenype) 
     .putHeader("Content-Disposition", encodeFileName) 
     .putHeader(HttpHeaders.TRANSFER_ENCODING, "chunked") 
     .sendFile(filePath).end();