C++: wie konvertieren von ASCII-oder ANSI in UTF8 und speichert Sie in std::string

Meiner Firma verwenden Sie code wie diesen:

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

denen ich glaube, dass es konvertiert einen Unicode-string (deren Typ CString)in ANSI-Codierung, und diese Zeichenfolge ist für einen E-Mail-Betreff. Allerdings-header der E-Mail (zu dem Thema) zeigt an, dass die E-mail-client sollte Dekodieren als unicode (dies ist, wie der ursprüngliche code hat). So, einige Deutsche Zeichen wie "ä ö ü" nicht richtig angezeigt wie der Titel.

Gibt es trotzdem, dass ich dieses header auf UTF8 und speichern Sie in einem std::string und const char*?

Ich weiß, es gibt viel intelligentere Möglichkeiten, dies zu tun, aber ich brauche, um den code festhalten an seiner ursprünglichen (D. H. geschickt, der header als std::string und const char*).

Vielen Dank im Voraus.

  • Sie werden wahrscheinlich wollen, std::wstring
  • Es gibt keine vorgekocht Makros konvertieren zu utf8. Erstellen Sie einfach Ihre eigenen, rufen Sie WideCharToMultiByte() mit CP_UTF8.
InformationsquelleAutor Joe | 2013-11-28
Schreibe einen Kommentar