La conversión de ASCII extendido a utf 8
-
01-10-2019 - |
Pregunta
¿Cómo convertir un std :: string codificado en ASCII extendido a UTF-8 utilizando Microsoft Visual Studio 2005?
Estoy usando tampón de protocolo de Google y se queja de caracteres no utf8 en mi cadena si se lo doy sin conversión, lo cual es cierto ...
Solución
MultiByteToWideChar para convertir su cadena a UTF-16, a continuación, utilizar WideCharToMultiByte para convertirlo en UTF-8.
Otros consejos
Vamos a suponer que misteriosa Exntended ASCII es sólo Latin1. A continuación, utilice la máscara de Wikipedia:
110Y yyxx 10xx xxxx
Dado que sólo tiene 00..FF entonces usted tiene:. 1100 00xx 10xx xxxx
algoritmo de conversión será siguiente, si el código de caracter es <127 luego simplemente lo descarga como es, si es> 127 entonces no 0xC0 | ((x & 0xC0) >> 24)
va al primer byte, en segundo lugar es ((x & 0x3F) | 0x80)