Bonjour à tous,
j'ai un ensemble de librairie qui fonctionne sous Windows et Linux et qui sont utilisé par des UI développée pour chaque plateforme.
Certaines fonctions prennent en paramètre des std::string afin de les afficher ou encore des les écrires dans une base de données sqlite :
Sous linux pas de problème , je peux écrire des accents , du chinois , du russe, etc ... sans aucun problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part void Log(const std::string& msg );
Sous windows en revanche c'est un autre problème puisque si le projet est en unicode je retrouve les erreurs typique d'encodage dans la chaîne finale.
Donc le code suivant
fonctionne parfaitement sous Linux mais m'écrit n'importe quoi sous windows.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::string msg("éàçèù"); Log(msg);
Sous windows la solution semble être d'utiliser des std::wstring sauf que les librairies (cross plateforme) utilisent elle des std::string.
En prenant par exemple les deux définitons suivantes quels sont les solutions possible pour rendre windows compatible ?
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void Log(const std::string& msg ); std::string GetLog();
Partager