[ZIP] Pb nom fichier caractères spéciaux
Bonjour, j'utilise la librairie java.util.zip pour dézipper un fichier.
Quand mon zip contient un nom de fichier avec un caractère spécial (du style è, é, ...), ma String url est incorecte :
Code:
1 2
| entry = (ZipEntry) e.nextElement();
String url = entry.getName(); |
Ce qui entraine bien sûr derrière l'impossibilité d'ouvrir le fichier zippé pour le dézipper !
Quand je fais un Watch sur ma variable URL, je vois que pour le caractère 'è', j'ai 138, ce qui correspond au caractère ASCII du 'è' mais comme Java est censé comprendre de l'unicode, j'ai fait la bidouille :
Code:
1 2 3 4 5 6 7
|
int len = url.length();
byte[] test = new byte[len];
url.getBytes(0,len,test,0);
CharsetDecoder decoder = Charset.forName("CP1252").newDecoder();
ByteBuffer buffer = ByteBuffer.wrap(test);
url = decoder.decode(buffer).toString(); |
Mais ça ne marche pas non plus ; j'ai aussi essayé avec un CharBuffer, impossible.
Donc ma question, comment faire en sorte que Java prenne en compte les noms de fichier avec caractères spéciaux ?