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 :

Probleme d'accent lors d'insertion de donnée dans 1 base Mysql venant d'1 fichier XML


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut Probleme d'accent lors d'insertion de donnée dans 1 base Mysql venant d'1 fichier XML
    Bonjour,

    J'ai un petit souci lorsque je souhaite inserer dans ma base de donnée Mysql les données venant de fichier XML, les accents contenus dans les données sont transformé en é à etc.. ce qui est..... pas top

    Pour effectuer cela j'utilise DBI et XML::Simple

    et mon code est le suivant :

    my $xml = $xs->XMLin($fichierXML );
    my $piki=$xml->{'Job_Description'};

    my $strSQL = "UPDATE jobs SET advertreference = 'TEST_ADVERT',
    adverttextdescript = '$piki',
    WHERE jobsref = 28342
    ;";

    $dbh->do($strSQL);

    Mon fichier de test XML :
    <Customers>
    <Job_Description>ééééééàààààààààààààèèèèèè
    </Job_Description>
    </Customers>

    Les tests que j'ai deja fait montre que si je ne vais pas recuperer les données dans le fichier XML, je n'ai aucun souci d'accent, si je passe par une variable intermediaire, cela revient au meme, j'ai testé differents encode, decode, cela ne semble rien donné, j'ai toujours dans ma base de donnée a l'arrivé : ééééééà à à à à à à à à à à à à èèèèèè

    Par ailleurs mon phpmyadmin indique que le caractere set est en latin1.
    La configuration du serveur sur lequel je travaille est une Gentoo Linux avec mysql-4.0.25-r2 et perl 5.8.6

    Voila, je ne pense pas avoir oublié quelquechose... si ce n'est que je bute sur ce probleme depuis un certain temps, et qu'il commence a pu me rester beaucoup de cheveux, donc si vous pouvez sauvez mon coiffeur du chomage technique, ca serait avec grand plaisir

    Merci d avance

  2. #2
    Expert confirmé
    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
    Par défaut
    Les données de ton XML doivent être en utf-8, fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    my $xml = $xs->XMLin($fichierXML );
    my $piki=$xml->{'Job_Description'};
    from_to($piki, 'utf-8', 'iso-8859-1' );
    my $strSQL = "UPDATE jobs SET advertreference = 'TEST_ADVERT',
    adverttextdescript = '$piki',
    WHERE jobsref = 28342
    ;";
     
    $dbh->do($strSQL);
    NB : L'encodage de ton XML devrait être précisé dans sa déclaration.

    --
    Jedaï

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut
    Merci de ta réponse,

    malheureusement cela ne semble pas marché, le résultat obtenu par phpmyadmin est ?????????????????????????

    J'ajoute par ailleurs que les données sur le fichier XML a pour en tete :

    <?xml version="1.0" encoding="ISO-8859-1"?>

  4. #4
    Expert confirmé
    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
    Par défaut
    Ton fichier XML est-il réellement dans cet encodage, autrement dit, si tu ouvres ce fichier dans un éditeur et que tu dis à l'éditeur que l'encodage à utiliser est le latin1, le fichier reste-t-il lisible ? Par ailleurs comment ouvres-tu le fichier XML ? Comment te connectes-tu à la BDD ?

    --
    Jedaï

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut
    J'utilise ultraedit32 comme editeur et j'avoue ne pas savoir comment verifier l'encodage avec cette editeur, neamoins si tu sais le faire ou si tu en as un autre a me conseiller, ainsi que la methode pour verifier, je suis preneur..

    Concernant la seconde question :

    Pour ouvrir le fichier XML, sans option particuliere :
    my $fichierXML="./Advert_XML/simple.xml";
    my $xml = $xs->XMLin($fichierXML );

    Pour la connection a la base de donnée :
    my $dbh = DBI->connect('DBI:mysql:matable:localhost:3306', 'login','passwd' );

  6. #6
    Expert confirmé
    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
    Par défaut
    Je sais comment faire avec Scite (qui absolument génial par ailleurs), il suffit d'ouvrir le fichier et de spécifier l'encodage dans lequel on veut le voir avec "Fille > Encoding > 8 bits".

    --
    Jedaï

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

Discussions similaires

  1. [MySQL] Insertion de données dans une base MySQL via un formulaire
    Par rcomlan dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/02/2015, 19h53
  2. Insertion de données dans une base MySQL
    Par arm3366 dans le forum SGBD
    Réponses: 4
    Dernier message: 26/02/2013, 09h46
  3. [MySQL] Problème d'insertion de données dans une base MySql à partir d'un fichier csv
    Par kazabandi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/12/2010, 18h05
  4. Insertion de donnée dans une base MySql
    Par jep33 dans le forum Langage
    Réponses: 4
    Dernier message: 05/11/2008, 07h44
  5. Réponses: 3
    Dernier message: 27/03/2006, 17h25

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