Salut � tous.
Comment fait-on pour convertir un string en wstring (ou un char* en wchar_t*) et invers�ment? Quitte � perdre des informations si c'est unicode vers ASCII.
Merci d'avance.
Salut � tous.
Comment fait-on pour convertir un string en wstring (ou un char* en wchar_t*) et invers�ment? Quitte � perdre des informations si c'est unicode vers ASCII.
Merci d'avance.
Quelqu'un avait donn� ce code (je ne retrouve plus le post) :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include <string> #include <locale> std::string narrow(const std::wstring& ws) { std::string res(ws); std::locale loc("english"); std::use_facet< std::ctype<wchar_t> >(loc).narrow(&ws[0], &ws[ws.length()], '?', &res[0]); return res; } std::wstring widen(const std::string& s) { std::wstring res(s); std::locale loc("english"); std::use_facet< std::ctype<wchar_t> >(loc).widen(&s[0], &s[s.length()], &res[0]); return res; }
Mieux que SDL : d�couvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Si c'est juste de l'ASCII il suffit de copier les donn�es.
Apr�s si tu dis ASCII alors que c'est pas de l'ASCII mais un truc genre ISO-8859-1 c'est autre chose, bien entendu.
Sauf que tu as choisi pile le mauvais exemple, car pour l'ISO-8859-1, il suffit de recopier aussi (en non-sign�, car l'octet fort doit �tre nul).![]()
En effet, les 256 premiers caract�res unicode sont ceux de l'ISO-8859-1...
Enfin bien s�r, seules les vraies fonctions de conversion sont � utiliser (je viens de d�crouvrir narrow/widen, mais on peut aussi utiliser les streams (mais j'ignore quelle locale est prise en compte)).Envoy� par [url=http://en.wikipedia.org/wiki/Basic_multilingual_plane]Wikip�dia[/url]
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Bon, pour clarifier: je parlais des classes "string" et "wstring". Et ce quelque puissent �tre leurs formats d'encodage respectifs, quelle que soit la plateforme.
Partager