Domanda

Come si fa a convertire uno std :: stringa codificata in ASCII esteso a utf8 utilizzando Microsoft Visual Studio 2005?

sto usando buffer di protocollo di Google e sta lamentandosi caratteri non UTF8 nella mia stringa se lo do senza conversione, il che è vero ...

È stato utile?

Soluzione

MultiByteToWideChar per convertire il vostro stringa UTF-16, quindi utilizzare WideCharToMultiByte per convertirlo in UTF-8.

Altri suggerimenti

Supponiamo che misterioso Exntended ASCII è solo Latin1. Quindi utilizzare la maschera da wikipedia:

  

110y yyxx 10xx xxxx

Dal momento che hai solo 00..FF poi si deve:. 1100 00xx 10xx xxxx

algoritmo di conversione sarà seguito, se il codice char è <127 poi basta discarica come è, se è> 127 poi si fa 0xC0 | ((x & 0xC0) >> 24) va al primo byte, la seconda è ((x & 0x3F) | 0x80)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top