C++: comment faire pour convertir ASCII ou ANSI en UTF8 et les magasins en std::string

Mon entreprise d'utiliser un code comme ceci:

    std::string(CT2CA(some_CString)).c_str()

qui, je crois, il convertit une chaîne Unicode (dont le type est CString)dans l'encodage ANSI, et cette chaîne de caractères est un objet du courrier électronique. Cependant, l'en-tête de l'e-mail (qui inclut le sujet) indique que le client de messagerie doit décoder comme un unicode (c'est ainsi que le code d'origine). Donc, un peu d'allemand caractères comme "ä ö ü" ne sera pas correctement affichée en tant que titre.

Est-il de toute façon que je peux mettre cet en-tête en arrière en UTF8 et de les stocker dans un std::string ou const char*?

Je sais qu'il y a beaucoup de moyens plus intelligents pour le faire, mais j'ai besoin de garder le code collant à celle d'origine (c'est à dire envoyé l'en-tête comme std::string ou const char*).

Merci d'avance.

vous aurez probablement envie std::wstring
Il n'y a pas précuit macros qui convertir en utf8. Créez simplement votre propre, appel WideCharToMultiByte() avec CP_UTF8.

OriginalL'auteur Joe | 2013-11-28