Frage

Wie konvertieren Sie eine std :: string codierte in erweiterten ascii zu utf8 Microsoft Visual Studio 2005?

Ich verwende Google Protokoll Puffer und es geht um nicht UTF8-Zeichen in meinem String beschweren, wenn ich gebe es ohne Umwandlung, das ist wahr ...

War es hilfreich?

Lösung

Verwenden Sie MultiByteToWideChar konvertieren Sie Ihre String in UTF-16, dann verwenden Sie WideCharToMultiByte es in UTF-8 zu konvertieren.

Andere Tipps

Nehmen wir an, dass geheimnisvolle Exntended ASCII ist nur Latin1. Dann Maske aus wikipedia verwenden:

110y YYXX 10xx xxxx

Da Sie nur 00..FF haben, dann haben Sie:. 1100 00xx 10xx xxxx

wird Conversion Algorithmus folgend sein, wenn char-Code ist <127 dann Dump es einfach wie es ist, wenn es sich um> 127 dann Sie tun 0xC0 | ((x & 0xC0) >> 24) zum ersten Byte geht, die zweite ist ((x & 0x3F) | 0x80)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top