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 Perl Discussion :

Lecture de fichier: encodage utf-8 et iso-8859-1


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Lecture de fichier: encodage utf-8 et iso-8859-1
    Bonjour à tous ,

    J'aimerais avoir des informations complémentaires sur ce sujet, toujours dans le cadre du script sur lequel je travaille:
    Lecture d'un fichier texte contenant des plusieurs lignes:
    Voici un exemple de fichier type:

    nom;prénom;age;sexe;adresse
    toto;tata;9;m;adresse1
    titi;tutu;10;f;adresse2
    tata;tyty;7:f:adresse3

    Je suis tombé, je vous l'avouerais par hasard , sur un problème: l'encodage du fichier texte. Etant débutant en perl (oui c'est mon premier travail la dessus), j'ai encore du mal avec certaines notions.

    Voila le problème:

    Après avoir <fini> mon script, je testé ce dernier sur plusieurs fichiers et résultat: ce dernier ne fonctionne pas du tout avec les fichiers codés en UTF-8
    Je me lance donc à la recherche d'information. Notre ami google me dit qu'il existe des programmes pour convertir les différents fichiers (iconv, recode,..). Cependant je ne cherche pas à convertir mes fichiers dans un premier temps.

    J'aimerais pouvoir avant tout comprendre comment perl interprete ces différences de codage et comment il travaille donc sur un fichier texte.
    Donc si vous pouviez me donner des références de sites où je pourrais me documenter plus sur ce sujet ou bien me faire une brève explication pour que je puisse mieux appréhender l'encodage en perl.

    Cordialement.

    NB:
    voici ma version de perl:5.10.0

    voici comment je lis mon fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    open(FICHIER,"$file") or die("Error opening file\n");
    		@contenu=<FICHIER>;
    voici la commande je tape pour executer mon script:
    perl main.pl fichier.txt

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Si tu veux que le fichier soit lu en utf-8, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    open my($file), '<:utf8', $filename
      or die "Can't read $filename : $!\n";
    (j'ai aussi utilisé un scalaire pour le handle, c'est une pratique préférable à l'utilisation de GLOB que tu fais, sauf si tu tiens à être compatible avec des perl ayant plus de dix ans)

    Perl a un excellent système de gestion des encodages, tu peux te reporter à ce post pour une explication simple et lire la doc de Perl (en particulier perluniintro) pour plus de détails.

    (Si le problème est que tu as des encodages mélés et imprévisibles pour une même classe de fichier, dis-toi bien que le problème est à régler à la source, il existe des modules Perl qui essaient de deviner l'encodage correct, mais le problème est insoluble dans le cas général...)
    --
    Jedaï

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci jedai pour ces compléments d'informations.

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

Discussions similaires

  1. Encodage UTF-8 en ISO-8859-1
    Par electrovolt dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 24/09/2012, 15h02
  2. Encodage utf-8 vers iso-8859-15
    Par ruddy32 dans le forum DB2
    Réponses: 1
    Dernier message: 20/03/2012, 11h12
  3. [1.x] Encodage UTF-8 et ISO-8859-1
    Par Alahel dans le forum Symfony
    Réponses: 8
    Dernier message: 09/09/2008, 12h52
  4. Encodage : Conversion UTF-8 vers ISO-8859-?
    Par polo54 dans le forum Général Java
    Réponses: 6
    Dernier message: 26/06/2007, 20h10
  5. encodage UTF-8 vers ISO-8859-1
    Par taouja dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 13/04/2007, 12h03

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