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

Langage PHP Discussion :

Noms de fichiers accentués dans une archive Zip [Encodage]


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut Noms de fichiers accentués dans une archive Zip
    Bonjour à tous,

    Voici le bout de code qui me pose souci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    copy(
        'zip://'.$nomZip.'#'.$element->donnees->fichier,
        FUSION_DIRECTORY.$element->donnees->fichier
    );
    Cette copie de fichier (archive -> dossier) fonctionne sans problème, sauf si le nom du fichier contient un accent : bébé.jpg par ex.

    L'encodage de mon code semble correct, puisque l'erreur me dit qu'il n'a pas pu ouvrir bébé.jpg.

    En revanche, si je cherche dans l'archive, celle-ci est encodée en ANSI est les "é" sont remplacés par des ",".

    A partir de ces éléments, quelqu'un aurait-il une piste à me donner pour résoudre mon problème ?


    Fred

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Quel est l'encodage de départ de $element->donnees->fichier ? Et en passant par un encodage IBM850 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    copy(
        'zip://'.$nomZip.'#'.iconv('ISO-8859-1' /* encodage réel de $element->donnees->fichier */, 'IBM850', $element->donnees->fichier),
        FUSION_DIRECTORY.$element->donnees->fichier
    );

  3. #3
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Merci julp,
    La piste était la bonne.
    En fait, le bon code était le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    copy(
        'zip://'.$nomZip.'#'.iconv('UTF-8','IBM850',$element->donnees->fichier),
        FUSION_DIRECTORY.$element->donnees->fichier
    );
    En effet, l'encodage de départ de $element->donnees->fichier est UTF-8,
    alors que, semble-t-il les archives zip sont encodées IBM850. Tant qu'il n'y a pas de caractères spéciaux, cela ne pose pas de problèmes, mais dans le cas contraire, il ne faut pas oublier de gérer cela, d'où le iconv pour retrouver le fichier "b,b,.jpg".
    Après test, il s'avère qu'il faut la même prudence lorsqu'on ajoute un fichier à l'archive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $zipFusion->addFile(
        FUSION_DIRECTORY.$element->donnees->fichier,
        iconv('UTF-8','IBM850',$element->donnees->fichier)
    );
    Sinon, celui qui va récupérer l'archive va se retrouver avec un problème insoluble.
    Fred

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter un fichier dans une archive zip existante
    Par dawadam dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 31/05/2010, 12h19
  2. Récupérer le nom du fichier copié dans une cellule
    Par mammmy dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 12/06/2008, 16h31
  3. [FilZip] Dossiers vides dans une archive .zip
    Par Invité dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 06/12/2007, 08h29
  4. importer les noms de fichiers html dans une table access
    Par abane badis dans le forum Access
    Réponses: 3
    Dernier message: 14/11/2005, 17h25
  5. [C#] [WinForms] Lecture d'un fichier dans une archive ZIP
    Par aegypius dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/12/2004, 17h15

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