Bonjour à tous :o
Une petite question :
Existe t-il une fonction chez boost ou dans la stl qui permet de convertir un wstring en string ? et l'inverse ?
Version imprimable
Bonjour à tous :o
Une petite question :
Existe t-il une fonction chez boost ou dans la stl qui permet de convertir un wstring en string ? et l'inverse ?
bonjour, dans la STL il y a
::mbstowcs qui fait de string (en fait const char*) en wstring et
::wcstombs qui fait de wcha_t* en string
Cool ça marche nikel...
si vous connaissez une solution encore + simple, je suis preneur :wink:Code:
1
2
3
4 wstring wtest = L"blablabla"; string test; test.resize(wtest.size()); wcstombs(&test[0], &wtest[0], wtest.size()); cout << test << endl;
Merci bcp BainE
nan, j'ai pas mal cherché j'ai rien trouvé d'autre mais si quelqu'un en sait plus long ca m'interesse
Il n'y a rien sur les string directement. Il faut utiliser le facet ctype de ton locale et utiliser les membres narrow et widen. J'ai pas le temps de donner un exemple. Peut-etre ce soir. Sinon, et si personne ne le fait, envoie moi un email pour me le rappeler au cas ou j'oublie.Citation:
Envoyé par superspag
Oui, je viens de tomber dessus avec la MSDN... :lol:
la fonction ctype::do_narrow m'a tout l'air d'etre ce qu'il me faut mais je n'ai pas encore reussi à l'utiliser :roll:
Bah... je doit etre fatigué, je verai ça demain :wink:
Merci à tous, je vous tiens au courant...
Il y a un problème ici.Citation:
Envoyé par superspag
Officiellement, il n'y a pas de garantie de contiguité dans les caractères qui constituent une chaine -- contrairement aux vecteurs.
Soit, tu ne peux pas modifier la chaine via un char* extrait depuis &s[0]. Dans les faits, je ne crois pas avoir croisé d'implémentation de std::string dont les éléments ne soient pas contigus.
Et j'imagine que la std::string est censée être encodée dans la locale globale et que la std::wtring en unicode UCS-2 (ou DBCS ? je nesais jamais)
Bref, normalement, il faut effectivement voir du côté des code convertion facets pour pouvoir être plus souple sur l'utilisation des locales. Quant à Boost, il y a planqué, dans boost.serialize je crois, un code cvt facet pour gérer l'UTF-8. Il y en a un autre dans Adam ou Eve de chez adobe (opensource).
Merci pour toutes ces aides, je pense que je vais m'en sortir maintenant :o