#0 

24-02-2009 16:37:02

Hawk
Membre
Lieu: Wissous
Date d'inscription: 08-11-2008
Messages: 91
Site web

Salut à tous !

J'ai actuellement deux gros soucis sur lesquels je me creuse la tête depuis quelques temps, donc je me demandais si je pouvais trouver ici une âme charitable pour m'aider un peu.

      -> XML Reader & Writer
Le problème est le suivant : J'ai une fonction qui vient lire des données dans un fichier XML que j'ai écris à la main. Elle fait appelle à un IXMLReader. Cette fonction marche parfaitement bien avec le fichier que j'ai écris à la main.
J'ai fait également une fonction qui vient écrire les données dans un fichier XML, qui marche également. En effet, si je fais

Code:

MyData data = lireXML("fichier1.xml");
ecrireXML("fichier2.xml", data);

Avec "fichier1.xml" le fichier que j'ai écrit à la main, et que j'ouvre "fichier1.xml" et "fichier2.xml" avec un visualisateur XML (firefox par exemple), j'obtiens exactement les deux mêmes fichiers. Donc tout va bien.
Là où ça se complique, c'est si je fais :

Code:

MyData data = lireXML("fichier2.xml");

avec "fichier2.xml" le fichier crée par mon programme au dessous. Là ça ne marche plus. Alors pour comprendre, j'ai essayé d'ouvrir le fichier avec un éditeur de texte, et là j'ai un joli message :
"Impossible d'ouvrir le fichier ...
gedit n'a pas été capable de détecter le codage des caractères.
Vérifiez que vous n'essayez pas d'ouvrir un fichier binaire.
Sélectionnez un codage des caractères dans le menu et réessayez. "

Arf ! Bon courageux, j'essaie d'ouvrir avec un autre encodage ! Et là j'ai un truc encore plus bizarre. Quand j'ai fait mes premiers tests sur ces fonctions, j'étais sous Irrlicht 1.4.1, et en choisissant un encodage UTF-32, j'arrivais à ouvrir le fichier dans l'éditeur, puis je changeais manuellement l'encodage pour le mettre en UTF-8, et là tout marchait nickel. C'était chiant, mais ça marchait.
Or depuis peu, je suis passé sous Irrlicht 1.5. Et là, Ô surprise, je n'arrive même plus à ouvrir le fichier XML avec un éditeur ! J'ai essayé plusieurs encodage (UTF-8, 12,32, ISO-8859-15) mais ça ne s'ouvre toujours pas. Du coup, je ne sais vraiment pas quoi faire !


    -> Chaînes de caractères avec accents.
Mon second problème. J'ai une chaine de caractère, stockée dans une std::string, qui contient des accents. Je souhaite l'afficher avec Irrlicht, en appelant la méthode draw (const wchar_t *text, const core::rect< s32 > &position, video::SColor color, bool hcenter=false, bool vcenter=false, const core::rect< s32 > *clip=0) d'un objet IGUIFont. Il me faut donc convertir ma std::string en wchar_t*.
Pour le moment, j'ai ceci :

Code:

std::string mystr = "Bonjour pépé.";
wchar_t* mytext = irr::core::stringw(mystr.c_str()).c_str();

Cette méthode marche très bien pour tous les textes sans accents, mais quand il y a des accents, ca m'enlève la lettre (par exemple, si j'affiche mon texte précédent, j'aurais "Bonjour p p .").
En fouillant sur ce forum j'ai trouvé une méthode ici :
http://www.irrlicht.fr/forum/viewtopic.php?id=721

J'ai donc essayer de le faire, mais là c'est encore pire, ça arrête mon texte dès qu'il y a des accents ! (du coup j'ai "Bonjour p")
Et maintenant, je ne sais plus quoi faire d'autre pour que ça marche.
Si quelqu'un a une idée ??


D'avance merci.
Hawk

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
69 invités en ligne
Aucun membre connecté
RSS Feed