La conversion d'ASCII étendu à utf 8
-
01-10-2019 - |
Question
Comment convertir un std :: chaîne encodée en ascii étendu à UTF8 en utilisant Visual Studio 2005 de Microsoft?
Je suis en utilisant un tampon de protocole google et il se plaint de caractères non UTF8 dans ma chaîne si je donne sans conversion, ce qui est vrai ...
La solution
MultiByteToWideChar pour convertir votre chaîne en UTF-16, puis utilisez WideCharToMultiByte pour le convertir en UTF-8.
Autres conseils
Supposons que mystérieux ASCII Exntended est juste Latin1. Ensuite, utilisez un masque de wikipedia:
110Y YYXX 10xx xxxx
Puisque vous avez seulement 00..FF alors vous avez. 1100 00xx 10xx xxxx
algorithme de conversion sera suivant, si le code de caractères est <127 puis vider tout comme est, si elle est> 127, alors vous ne 0xC0 | ((x & 0xC0) >> 24)
va à premier octet, le second est ((x & 0x3F) | 0x80)