Unicode, wstring, wchar_t

Compilando el siguiente código en C++ con GCC:

C:
  1. wstring texto( L"/* lasldkj ksaka jkj àáäçÇ */" );
  2. int texto_len = texto.length();

Me apareció el siguiente error:

converting to execution character set: Invalid or incomplete multibyte or wide character

¿Cómo se resuelve? Cambiando la codificación del archivo fuente. En la línea de comandos de Linux usando iconv se puede hacer muy facil:

iconv fichero.in -f iso-8859-15 -t utf-8 -o fichero.out

Si usás algún editor de texto como KDevelop, con cambiarle la codificación el Herramientas -> Codificación -> Unicode (utf8) no alcanza, ya que solo estás cambiando la forma de interpretar el archivo, y no los caracteres mismos (en la parte en donde dice "àáäçÇ" aparecen signos de pregunta: "?????").

¡Viva Unicode!

Leave a Reply

Powered by WP Hashcash