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 :

fichier xml en ANSI au lieu d'utf-8


Sujet :

Langage Perl

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Par défaut fichier xml en ANSI au lieu d'utf-8
    Bonjour,

    J'ai un souci de compréhension avec les sorties de perl.

    Voici les données du problème :

    Un script perl, encodé en utf-8 avec Notepad++
    Ce script va chercher des données dans une base de données MySQL au moyen du module DBI.

    Le jeu de caractère pour MySQL est utf-8 unicode. La base de données, ses tables et ses colonnes sont en utf-8 (collation utf8_general_ci).

    Les données récupérées sont écrites dans un fichier de sortie .xml avec l'encodage en utf-8 précisé dans le prologue, pareil pour le fichier .xsl qui lui est adjoint.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<?xml version="1.0" encoding="UTF-8"?>
    Il y a des chaînes de caractère récupérées dans MySQL qui ne passent pas dans le fichier .xml, ce qui m'affiche un message d'erreur pour ces caractères accentués lors de l'ouverture du fichier (exemple le ï de maïs).

    Quand j'ouvre ce fichier .xml avec Notepad, l'onglet Format me renseigne qu'il est encodé en ANSI. Or il me semblait que les sorties de perl étaient en utf-8?

    En consultant différents sujets du forum, j'ai tenté deux solutions :

    Première solution au problème :
    utilisation du module Encode où j'encode en utf-8 ces chaînes de caractères qui posent problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data[1] = encode("utf-8",$data[1]);
    Résultat, le fichier .xml peut-être ouvert sans erreur, mais dans Notepad, il est toujours en ANSI, les caractères accentués s'affichent correctement.

    Deuxième solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open XML,">>:encoding(utf8)","$path" or die "Erreur ouverture du fichier xml";
    Dans ce cas, l'ouverture du fichier .xml ne pose pas de problème et les caractères accentués sont affichés correctement, mais lorsque j'ouvre ce fichier avec Notepad, il est toujours encodé en ANSI et les caractères accentués ne sont pas affichés correctement.

    J'ai donc deux questions :
    Est-ce qu'il n'y a pas moyen d'avoir un ficher .xml en utf-8 directement sans utiliser le module Encode ?
    Pourquoi est-ce que mon fichier .xml est en ANSI avec :encoding(utf-8) ?

  2. #2
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    utilise l'éditeur de texte pspad

Discussions similaires

  1. [UNIX]Convertir un fichier xml UTF-8 en ANSI
    Par splouf dans le forum Unix
    Réponses: 2
    Dernier message: 08/04/2010, 09h32
  2. Lire un fichier XML UTF 8
    Par rob2-9 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/08/2008, 21h07
  3. Creation d'un fichier XML avec ASP encoder en UTF-8
    Par freeze_land dans le forum ASP
    Réponses: 6
    Dernier message: 14/02/2007, 10h59
  4. [DOM] Encodage UTF-8 dans fichier XML et PHP
    Par norkius dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 03/01/2007, 15h44
  5. [File][UTF-16]comment creer un fichier xml en utf-16?
    Par Invité dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/01/2006, 15h40

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