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

SGBD Perl Discussion :

Encodage fichier csv dans base Mysql via script perl


Sujet :

SGBD Perl

  1. #21
    Nouveau membre du Club
    Profil pro
    Bioinformaticienne
    Inscrit en
    Novembre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 49
    Points : 35
    Points
    35
    Par défaut
    @djibril : j'essaie d'utiliser la méthode encore_entities de Perl suite à ton conseil pour encoder les caractères spéciaux. Or cette fonction ne me convertit pas bien les caractères suivants :
    ™ : ça me les remplace par â„¢ au lieu de ™
    ® : ça me les remplace par ® au lieu de ®
    Je ne comprends toujours pas pourquoi la fonction encode_entities de Perl ne fonctionne pas chez moi...

  2. #22
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Le résultat que tu obtiens est tout à fait normal. J'obtiens également le même résultat. Pour palier à cela, je m'étais fait une regex afin de convertir tous les cas particuliers m'embêtant.

    En fait, cela est dû à l'encodage du texte. Le module doit à mon avis tenir compte de l'encodage.
    En fonction que ton texte soit en utf8, ISO, ANSI, etc, le résultat pour ces cas particulier n'est pas le même.
    Dans ton cas, tu es en utf8, ce qui est très bien. Donc pour résoudre ton souci, tu peux utiliser le module encode.

    Voici un exemple testé chez moi qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use HTML::Entities;
    use Encode;
    my $texte = " a é -v_ bè- nè_- n_è ™ ® ";
    print "Sans encode : ", encode_entities($texte),"\n\n";
    print "Avec encode : ", encode_entities(decode('utf8', $texte));
    J'obtiens :
    Sans encode : a é -v_ bè- nè_- n_è â„&cent
    ; ®

    Avec encode : a é -v_ bè- nè_- n_è ™ ®
    Et mon script est en utf8.

    si je mets mon script en ISO-8859-2, voici ce que j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sans encode :  a é -v_ bè- nè_- n_è ™ 
     
    Avec encode :  a � -v_ b�- n�_- n_� � �
    Donc mes conseils.

    Toujours travailler en utf8. Et utiliser encode comme dans mon exemple précédent. Et si tu ne sais pas l'encodage de tes caractères, faire une regex pour gérer les cas particuliers.

  3. #23
    Nouveau membre du Club
    Profil pro
    Bioinformaticienne
    Inscrit en
    Novembre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 49
    Points : 35
    Points
    35
    Par défaut
    Super, j'ai désormais tout compris!

    Le post est donc enfin résolu pour ma part!

    Encore merci pour la réactivité et la clarté de tes explications!

    Je risque de revenir souvent pour avoir de bons conseils

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [MySQL-5.5] Importer contenu de fichier csv dans base de données MySQL
    Par sydko dans le forum Administration
    Réponses: 2
    Dernier message: 16/10/2013, 14h13
  2. Importation fichiers TXT dans base MYSQL
    Par moimoi78 dans le forum Administration
    Réponses: 2
    Dernier message: 02/05/2011, 23h11
  3. Repertoire (fichier ".csv") dans base Access ".mdb"
    Par Tone31 dans le forum VB.NET
    Réponses: 7
    Dernier message: 02/02/2011, 15h04
  4. Réponses: 1
    Dernier message: 25/01/2010, 23h06
  5. Inserer données fichier excel dans base Mysql
    Par sternan dans le forum Documents
    Réponses: 7
    Dernier message: 12/08/2009, 16h28

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