J'essaie de convertir une chaîne C++ en chaîne wstring. J'ai trouvé le code suivant, qui semble traiter des accents, c'est ce que je recherche.Conversion de chaînes en wstring sous OS X
std::wstring widen(const std::string& s)
{
std::vector<wchar_t> buffer(s.size());
std::locale loc("fr_FR");
std::use_facet< std::ctype<wchar_t> >(loc).widen(s.data(), s.data() + s.size(), &buffer[0]);
return std::wstring(&buffer[0], buffer.size());
}
Malheureusement, les accidents de code pour toute autre valeur loc que C ou POSIX. Ce problème a déjà été discuté, sans succès, ici: std::locale breakage on MacOS 10.6 with LANG=en_US.UTF-8, here ou here.
Y a-t-il une solution de contournement ou un autre moyen de le faire?
Pouvez-vous corriger le titre? Il se lit comme si vous voulez convertir wstring -> string. La description de votre problème est cependant string -> wstring. – rnicholson
Désolé. C'est réparé. – Klaus