J'ai besoin de générer une chaîne UTF8 pour passer à une bibliothèque tierce et j'ai du mal à trouver la bonne gymnastique ... Aussi, pour ne rien arranger, je suis coincé avec C++ Builder 6 et tous les Par exemple, j'ai trouvé des exemples d'utilisation de std :: string pour lesquels CBuilder6 n'a aucun support. Je voudrais accomplir cela sans utiliser STL quoi que ce soit.Conversion UTF8
Voici mon code jusqu'ici que je ne peux pas sembler faire le travail.
wchar_t *SS1;
char *SS2;
SS1 = L"select * from mnemonics;";
int strsize = WideCharToMultiByte(CP_UTF8, 0, SS1, wcslen(SS1), NULL, 0, NULL, NULL);
SS2 = new char[strsize+1];
WideCharToMultiByte(CP_UTF8, 0, SS1, wcslen(SS1), SS2, strsize, NULL, NULL);
La bibliothèque de la troisième partie s'établit lorsque je la passe en tant que paramètre SS2. Évidemment, je suis sur une plateforme Windows utilisant WideCharToMultiByte de Microsoft mais finalement je ne voudrais pas avoir besoin de cet appel de fonction car ce code doit aussi être compilé sur une plateforme embarquée aussi bien sous Linux mais je franchirai ce pont quand j'y arriverai .
Pour l'instant, j'ai juste besoin de pouvoir convertir un wchar_t ou un char en une chaîne encodée en UTF8 de préférence sans utiliser de STL. Je n'aurai pas de STL sur la plate-forme intégrée.
Merci!
EXACTEMENT ce que je cherchais. Bien que pour CBuilder6 j'ai dû ajouter quelques #defines pour le faire fonctionner. CBuilder6 ne connaissait pas _stricmp (le connaissait comme strictmp) et il ne connaissait pas _itoa que j'ai corrigé avec un sprintf ... Nice! Je vous remercie! – Eric