Unicode, wstring, wchar_t
Compilando el siguiente código en C++ con GCC:
-
wstring texto( L"/* lasldkj ksaka jkj àáäçÇ */" );
-
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!