Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ZedGe en 2 Septiembre 2013, 07:45 am



Título: Tildes en C++
Publicado por: ZedGe en 2 Septiembre 2013, 07:45 am
Tengo una función que lee carácter a carácter un archivo en C y lo imprime por pantalla... el problema es que las letras con tilde (á,é,í,ó,ú) las imprime con un � por lo que no puedo reemplazarlas por las vocales sin tilde.


Alguien sabe como puedo hacerlo?
 


Título: Re: Tildes en C++
Publicado por: eferion en 2 Septiembre 2013, 09:13 am
Lo que comentas se produce por problemas en la codificación.

Si has trasteado en algún momento con un editor de código puede que te hayas topado alguna vez con que los archivos los puedes guardar con diferentes codificaciones ( ANSI, UTF8, UCS2, ... ). Estas codificaciones determinan qué secuencia numérica identifica a cada carácter ( No olvidemos que, al final, la información almacenada en el disco duro son datos binarios, es decir, números ).

Las codificaciones más comunes son ANSI y UTF8 y, de hecho, si escribes sin acentos ambas codificaciones son idénticas, al menos en lo que refiere a los caracteres básicos ( A-Z, a-z, 0-9, corchetes, comillas, puntos, comas, operadores matemáticos, etc ).

En lo que se refiere a tu problema, es posible que tu código fuente esté almacenado en ANSI y la consola esté corriendo en UTF8 ( o al revés ), por eso cuando se hace la conversión de número a caracter aparece un símbolo extraño.

Prueba a coger el código fuente y cambiarle la codificación ANSI-UTF8, compila y prueba de nuevo, a ver si te funciona mejor.

La forma de cambiarle la codificación depende del editor, si no está en "guardar como", tendrás que navegar entre las opciones del editor o buscar en internet cómo realizar lo esto con el editor que estás usando.