wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 4

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» XML windows-1252 et UTF-8
Conversation : XML windows-1252 et UTF-8
02-12-2009 20:57:30  XML windows-1252 et UTF-8 #1
jean-eric (Nouveau membre)
Inscrit le : 02-12-2009
Messages: 4
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,

je voudrais stocker des noms de fichier dans un fichier XML.
Mais les noms des fichiers comportent des lettres accentuées (par exemple "c:\clé.txt").

Pour créer mon fichier, j'utilise :
...
Xml->SetFileEncoding(XML_ENCODING);
...
pFichier->AddProperty(XML_FICHIER_PATH, Path);
...
Xml.Save(NomFichierXML);

si je positionne XML_ENCODING à "utf-8" le fichier XML est bien crée
mais si je positionne XML_ENCODING à "windows-1252" ou "ISO-8859-1" les lettres accentuées sont ignorées (dans le fichier XML je ne retrouve que : Path="c:\cl.txt").

par contre pour lire ce fichier j'utilise :
Xml->Load(NomFichierXML);
...
pFichier->GetPropVal(XML_FICHIER_PATH, &Path);


Et là la méthode Load() renvoie une erreur.
si j'édite mon fichier XML pour en changer l'entête et positionner l'encodage a "windows-1252" ou "ISO-8859-1" cela semble fonctionner.
Par contre dans la variable de type wxString Nom je retrouve une séquence d'octets à la place chaque caractère accentué (c:\clé.txt).


Merci de votre aide.


Jean-Eric
03-12-2009 09:03:05  Re: XML windows-1252 et UTF-8 #2
guyothomas (Membre)
Inscrit le : 05-06-2008
Messages: 66
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,
c'est une idée comme ça mais as-tu essayé l'encodage Unicode?

Thomas.
03-12-2009 09:53:37  Re: XML windows-1252 et UTF-8 #3
jean-eric (Nouveau membre)
Inscrit le : 02-12-2009
Messages: 4
Snippets: 0
Tutoriels: 0
Hors ligne
Merci, pour l'aide.

Je viens d'essayer,

Le résultat ressemble à celui en "windows-1252" ou "ISO-8859-1" car tous les caractères avant l'accent sont ignorés.
03-12-2009 10:34:39  Re: XML windows-1252 et UTF-8 #4
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Hello

Normalement, si tu ne spécifies pas l'encodage, wxWidgets va prendre le même que celui des libs que tu utilises, et ça sera forcément compatible.

J'ai une petite application qui stocke des données dans un fichier XML.
Je ne spécifie rien lors de l'enregistrement, et comme j'utilise la version UNICODE des libs wxWidgets, l'entête du fichier XML est la suivante :

Code:

<?xml version="1.0" encoding="utf-8"?>

Certaines des données contenues dans ce fichier ont des caractères accentués, et ça marche nickel.

Essaye sans spécifier l'encodage, pour voir.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
04-12-2009 09:50:59  Re: XML windows-1252 et UTF-8 #5
jean-eric (Nouveau membre)
Inscrit le : 02-12-2009
Messages: 4
Snippets: 0
Tutoriels: 0
Hors ligne
Merci de t'intéresser à mon problème.

Sur la première version de mon programme, je ne spécifiait rien comme tu le propose.
le fichier était bien crée en encodage UTF8. mail à la lecture, la méthode Load() renvoyait une erreur.

J'utilise l'environnement wx-devcpp


j'ai fait d'autres essais avec code::Blocks en compilant moi même le dernière version de wx-widget en unicode et là c'est la méthode GetPropVal() qui plante carrément le programme (en plus j'ai un warning à la compilation :
GetPropVal' is deprecated (declared at C:/wxWidgets-2.9.0/include/wx/xml/xml.h:222)


je suis un peu perdu.

Jean-Eric
04-12-2009 11:23:01  Re: XML windows-1252 et UTF-8 #6
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
jean-eric:
J'ai fait d'autres essais avec code::Blocks en compilant moi même le dernière version de wx-widget en unicode et là c'est la méthode GetPropVal() qui plante carrément le programme (en plus j'ai un warning à la compilation :
GetPropVal' is deprecated (declared at C:/wxWidgets-2.9.0/include/wx/xml/xml.h:222)
Apparemment, avec la version 2.9 de wxWidgets, la méthode GetProvVal a été remplacée par GetAttribute, mais je doute que le problème vienne de là.

Essayes de poster un peu de code (pour l'écriture et la lecture du fichier xml), pour voir.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
05-12-2009 12:45:14  Re: XML windows-1252 et UTF-8 #7
jean-eric (Nouveau membre)
Inscrit le : 02-12-2009
Messages: 4
Snippets: 0
Tutoriels: 0
Hors ligne
Mes problèmes sont maintenant résolus

Merci Xaviou
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» XML windows-1252 et UTF-8