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 :
Ce qui entraine bien sûr derrière l'impossibilité d'ouvrir le fichier zippé pour le dézipper !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 entry = (ZipEntry) e.nextElement(); String url = entry.getName();
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 :
Mais ça ne marche pas non plus ; j'ai aussi essayé avec un CharBuffer, impossible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
Donc ma question, comment faire en sorte que Java prenne en compte les noms de fichier avec caractères spéciaux ?
Partager