IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[ZIP] je veux des accents ! [Bug report]


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 43
    Points : 25
    Points
    25
    Par défaut [ZIP] je veux des accents !
    Coucou tout le monde,

    Je suis en train de faire une appli de backup : elle fera des copies de fichiers et des archivages zip.

    J'ai lu plusieurs fois qu'il fallait enlever les accents dans le nom des entrées zip... Est-ce que c'est vraiment obligatoire ? Comment font les softs comme WinZip pour garder les accents ? (c'est parce que c'est pas en Java ?)

    Ne peut-on pas passer par UTF-8 ou ISO-8859-1 pour garder les accents dans les noms des fichiers ?
    Comment fait-on pour zipper des fichiers dont les noms sont en japonais ?? (vive la portabilité )

    Si qq1 sait, même juste pour les accents français, ça m'enlèverait un gros problème !

    D'ailleurs, ce problème d'accents fait que je ne peux pas vérifier le checksum de l'archive : le checksum calculé pendant l'écriture du zip n'est pas le même que celui calcué lors du dézippage de vérif (ils sont égaux avec une archive sans accents dedans).

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    Rah je suis déçu... pas de réponse... Personne ne sait comment garder les accents dans les noms des entrées zip ?

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 52
    Points : 40
    Points
    40
    Par défaut
    rraahh, je suis deçcu aussi...
    je rencontre exactement le même problème que toi avec mes zip de backup.
    Si personne n'a de réponse comme ca de but en blanc, peut être peut-on réfléchir ensemble à un moyen d'éviter le problème?

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 52
    Points : 40
    Points
    40
    Par défaut
    En visitant plus en profondeur le forum, j'ai trouvé ceci:

    Citation Envoyé par MrEddy
    Salut,

    J'ai un programme qui zip des fichiers grâce a la classe ZipOutputStream. Cependant si dans les noms de fichiers d'origine il y a des caratères accentués, ils sont transformé en @+ par exemple pour le caractère 'é' dans le fichier zip généré. Quelqu'un a deja recontré ce problème ??

    Merci
    Citation Envoyé par papysam
    Essaye d'encoder les noms de fichier avant de les zipper avec la fonction
    java.net.URLEncoder.encode et de les décoder au dezippage avec java.net.URLDecoder.decode
    Citation Envoyé par MrEddy
    merci pour ta réponse, mais avec ce systeme (java.net.URLEncoder.encode) je dois dézipper le fichier par mon logiciel et non pas par winzip ou ark par ex, pour remettre les bons caractères ?
    Citation Envoyé par papysam
    Peux-tu poster la partie du code qui utilise ZipOutputStream ?
    Citation Envoyé par MrEddy
    ah scuse, effectivement on peut definir le nom qui servira dans le fichier zip, donc je vais le modifier a ce niveau (new ZipEntry(nomfichiermodifier)):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    FileInputStream fis = new FileInputStream(filePath);
    zos.putNextEntry(new ZipEntry(filePath));
     
    byte[] data = new byte[1024];
    int byteCount;
    while ((byteCount = fis.read(data)) > 0) 
    {
     	zos.write(data, 0, byteCount);
           	parent.ajouterProgression();
    }
    fis.close();
    zos.closeEntry();


    peut être cela t'intéressera-t-il?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    Oui j'avais lu ce topic aussi. Mais s'il faut un prog java pour dézipper, c'est pas ce que je veux. Je vois que je ne suis pas le seul... si qq1 trouve, ce serait sympa de le poster ici.

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Bonjour,

    Le standard .ZIP de chez PKWARE. Ceci ne t'apporte pas la solution mais pourra t'aider à cerner le problème.

    @+

  7. #7
    Membre émérite
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Points : 2 999
    Points
    2 999
    Par défaut
    Bonjour,
    C'est un "bug" Java, du à l'utilisation de l'UTF-8 : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4244499
    Une possibilité est d'utiliser Jakarta Commons Compress.
    Bonne chance.
    @+

  8. #8
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Bonjour,

    A l'aide du standard, j'ai pu analysé un fichier ZIP avec un nom de fichier contenant la lettre é. Dans le fichier ZIP, cette lettre est convertie dans la valeur hexadécimal 0x82 qui correspond au code ASCII de la lettre é.

    Voie d'une solution, les noms des fichiers doivent être convertis en ASCII avant d'être mémorisés. Je vais essayer de comprendre le code JAVA et donner peut être la SOLUTION.

    @+

  9. #9
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    J'ai analysé le code de ZipOutputStream est effectivement, comme le dit Veader, c'est un bug. Désolé

  10. #10
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 52
    Points : 40
    Points
    40
    Par défaut
    rrrrrrrraaaaaaaaaaahhhhhhhhhhhhh
    c'est pas cool ca!

  11. #11
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut
    Avez-vous trouvé une solution ou du moins une alternative?

Discussions similaires

  1. Ne pas tenir compte des accents dans une requete
    Par zamanika dans le forum Installation
    Réponses: 8
    Dernier message: 08/11/2004, 19h49
  2. [XML] encodage des accents
    Par matonfire dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 05/05/2004, 15h48
  3. Réponses: 5
    Dernier message: 08/03/2004, 10h28
  4. [ENCODAGE][JAVA]Afficher correctement des accents
    Par kornelius dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 17/02/2004, 16h37
  5. Réponses: 11
    Dernier message: 16/12/2003, 19h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo