Programación General > C/C++
Problema ASCII - Caracteres Con Tilde
(1/1)
sergio_:
Buen dia gente!
Vengo a consultar sobre un problema que tengo con un tp T_T
Estoy en "C"
Resulta que estoy levantado en un buffer contenido de archivos de texto plano, y la idea es ir obteniendo palabras a partir del buffer
Los archivos de texto pueden estar en cualquier idioma
Por ejemplo:
Buffer = "Hola , cómo andan? todo bien gente?, espero que si! ;)"
Filtrando el buffer debería obtener los siguientes terminos
HOLA, COMO, ANDAN, TODO, BIEN, GENTE, ESPERO, QUE, SI
El filtrado de los signos de puntuación ya lo tengo, tmb manejo el tema de si el buffer me corta una palabra por la mitad y todo eso.
Para el filtrado lo que hago es fijarme que el caracter del buffer (Buffer[Pos]) pertenezca a los intervalos del Ascii [65,90] ^ [97,122] ^ [128,165]
(Segun la tabla del ascii)
El intervalo [65,90] es para las minusculas
El intervalo [97,122] es para las mayusculas
El intervalo [128,165] es para las tildes y otras cosas raras
el problema que tengo con los tildes es que el codigo en 8 bits no pertenece a ese intervalo, o sea, ni siquiera son 8 bits por lo que veo
les dejo un ejemplo del codigo para ver los caracteres
--- Código: C --- //Un Buffer levantado del disco que vale = Cómo estás printf("Entre a obtener terminos con el buffer %s\n",buffer); while (i != caractleidos){ printf ("Caracter del buffer %c\n",buffer[i]); printf ("ASCII Caracter del buffer (sin signo) %u\n",buffer[i]); printf ("ASCII Caracter del buffer (con signo) %u\n",buffer[i]); i++; } //Salida por consola: Caracter del buffer CASCII Caracter del buffer (sin signo) 67ASCII Caracter del buffer (con signo) 67Caracter del buffer ASCII Caracter del buffer (sin signo) 4294967235ASCII Caracter del buffer (con signo) -61Caracter del buffer �ASCII Caracter del buffer (sin signo) 4294967219ASCII Caracter del buffer (con signo) -77Caracter del buffer mASCII Caracter del buffer (sin signo) 109ASCII Caracter del buffer (con signo) 109Caracter del buffer oASCII Caracter del buffer (sin signo) 111ASCII Caracter del buffer (con signo) 111Caracter del buffer ASCII Caracter del buffer (sin signo) 32ASCII Caracter del buffer (con signo) 32Caracter del buffer eASCII Caracter del buffer (sin signo) 101ASCII Caracter del buffer (con signo) 101Caracter del buffer sASCII Caracter del buffer (sin signo) 115ASCII Caracter del buffer (con signo) 115Caracter del buffer tASCII Caracter del buffer (sin signo) 116ASCII Caracter del buffer (con signo) 116Caracter del buffer ASCII Caracter del buffer (sin signo) 4294967235ASCII Caracter del buffer (con signo) -61Caracter del buffer �ASCII Caracter del buffer (sin signo) 4294967201ASCII Caracter del buffer (con signo) -95Caracter del buffer sASCII Caracter del buffer (sin signo) 115ASCII Caracter del buffer (con signo) 115Caracter del buffer
Por lo que veo es como que tiene un flag adelante, o algo por el estilo y despues viene un caracter basura o algo asi
proba poniendo unsigned char, y me sigue pasando lo mismo pero con distintos numeros
si alguien me puede dar una mano estaria agradecido!
su -:
Mi teoria es que estas usando Windows y el fichero esta codificado (probablemente "Windows-1252") o buffer no es unsigned.
Si es el primer caso busca una funcion para abrir ficheros en Unicode, pero estoy casi seguro que es el segundo caso.
Navegación
Ir a la versión completa