Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 3


|
Conversation (Résolue) : conversion char[]->std::string->wxString en UTF8 |
paul_c_weiss (Membre)
Inscrit le : 07-12-2012
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour! Je cherche à traiter un fichier xml codé en UTF-8 (il s'agit d'un fichier Excel .xlsx). L'idée est de lire certaines informations (du texte UTF-8) sur ce fichier, puis de les stocker sous forme de std::string dans un <vector> de la STL. Enfin, il me faut convertir ces données en wxString pour les afficher avec wxWidgets.
L'idée est de profiter de toutes les possibilités de la STL, et de n'utiliser wxString que là où c'est nécessaire....
Bon, j'ai donc crée un tableau: char Slate[4096]; que je remplis avec des GetC() sur un stream.
Ensuite je crée un std::string comme suit; string Res(Slate); Puis je stocke ce string dans un <vector>.
Dans une deuxième phase, je lis ces std::string dans le <vector>, et je les transforme en wxString pour affichage: wxString s(Res.c_str(),wxConvUTF8);
Et bien, ça ne marche pas: j'ai l'habituelle salade de caractères étranges au lieu des caractères accentués.
Ce qui est étrange, c'est que si pour créer mon std::string à partir de l'array de char je fais: wxString Resx(Slate, wxConvUTF8); string Res; Res = Resx.ToStdString();
Alors là , ça marche.
Mais ça me semble ridicule!
Auriez-vous mieux??
Paul ---------- OK! Erreur (ridicule...) trouvée, Problème résolu!
Merci tout de même!
Paul
Dernière modification par paul_c_weiss (07-04-2019 15:05:47)
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Et du coup, c'était quoi, l'erreur (ridicule) ?
Ça pourra servir à d'autres au cas où...
@+ 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....
|
paul_c_weiss (Membre)
Inscrit le : 07-12-2012
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour, Alors, ridicule, soyons-le jusqu' au bout...
J'avais une routine qui renvoyait un wxString que je venais d'obtenir à partir d'un std::string. Mais voilà : erreur stupide. la routine renvoyait le std::string, et non le wxString....
Mais pas d'erreur de compilation: conversion par défaut - mais bien sûr sans tenir compte du paramètre UTF-8....
De toutes manières, je n'en ai pas fini avec UTF-8. J'ai maintenant une question plus sérieuse ... je crois... J'ouvre donc une nouvelle discussion!
Merci encore
Paul
|
|
|