Heute gibt es mal eine Lösung zu einem relativ trivialen Problem, welches aber oft unnötigerweise durch Zuhilfenahme zusätzlicher, externer Bibliotheken gelöst wird:
Die UTF-8 Konvertierung.
Windows verwaltet intern alles durch seine wchars, welche 16bit zur Darstellung eines Zeichens benötigen. Die Konvertierung von UTF-8 in die derzeit benutzte system-locale führt daher auch über WideChars:
Zuer konvertiert man mit
MultiByteToWideChar UTF-8 auf wchar und anschließend mittels
WideCharToMultiByte auf die aktuelle locale. Mit dieser Kombination lassen sich natürlich auch andere Zeichensätze bequem konvertieren.
Im Folgenden eine kleine C++ Beispielfunktion, die einen
basic_string UTF8-decodiert.
In C funktioniert's natürlich dementsprechend noch einfacher, das kann sich aber dann ohnehin Jeder selbst basteln: