• Lunes 18 de Noviembre de 2024, 21:23

Autor Tema:  Problema Con Caracteres Especiales  (Leído 2779 veces)

DAVID_CODER

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Problema Con Caracteres Especiales
« en: Jueves 16 de Noviembre de 2006, 18:36 »
0
Hola a todos, soy nuevo en este foro, y kisiera saber como puedo escribir caracteres especiales del idioma español, (tales como '¿', '¡', 'ñ', 'º' y 'ª') asi como otros de otros idiomas ('ç'), en un archivo de texto mediante ANSI-C, sin que salgan caracteres extraños
Gracias por adelantado

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #1 en: Jueves 16 de Noviembre de 2006, 21:14 »
0
;)

Yo recuerdo que cuando tenia esa clase de problemas lo unico que hacia era crear una funcion que me cambiara caracter por caracter por ejemplo al leer un archivo de texto y leer una ñ en pantalla me mostraba +_  entonces hacia la funcion que me comparaba todos los caracteres y me los cambiaba por los caracteres adecuados y listo, esperemos y quiza alla mejores ideas.
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


DAVID_CODER

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #2 en: Jueves 16 de Noviembre de 2006, 21:20 »
0
Yo me referia, a como puedo crear un archivo de texto con C, en el que pueda escribir caracteres como la ñ, y que luego no se lea un caracter extraño en lugar de la ñ.
He leido que se podria hacer algo con locale.h pero toda la informacion esta en ingles
puede resolverse con utf8 programming? y en tal caso como hacerlo? alguien dispone de un extracto de codigo, una url con informacion?
gracias!!!!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #3 en: Jueves 16 de Noviembre de 2006, 21:21 »
0
Mejor usar Unicode y no ASCII.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

DAVID_CODER

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #4 en: Jueves 16 de Noviembre de 2006, 21:26 »
0
OK, y como utilizar UNICODE en ANSI-C? que libreria utilizar?
gracias!!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #5 en: Jueves 16 de Noviembre de 2006, 21:38 »
0
wchar_t es el equivalente a char y necesitas poner L delante de la comillas para indicar que es un Unicode, con Unicode podes usar texto en cualquier idioma como Japones, Chino o Arabe por ejemplo.

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. void main()
  5. {
  6.   wchar_t cadena[] = L"Este texto esta en español";
  7.   FILE *file;
  8.   file = fopen ("UnicodeTest.txt", "w");
  9.   fwrite(cadena, wcslen(cadena) * sizeof(wchar_t), 1, file);
  10.   fclose(file);
  11. }
  12.  
  13.  

Si abris el archivo txt con el notepad lo vas a ver correctamente, si haces type del mismo seguramente la ñ salga mal  B) (Es lo que queremos, el notepad es capaz de leer Unicode).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

DAVID_CODER

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #6 en: Viernes 17 de Noviembre de 2006, 01:53 »
0
He compilado tu codigo y me da el siguiente error: Converting to execution character set: invalid argument 4:22
La linea cuatro caracter 22  pertenece a la L que va delante de las comillas.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #7 en: Viernes 17 de Noviembre de 2006, 08:11 »
0
Cita de: "DAVID_CODER"
He compilado tu codigo y me da el siguiente error: Converting to execution character set: invalid argument 4:22
La linea cuatro caracter 22  pertenece a la L que va delante de las comillas.
¿Que compilador usas? ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

DAVID_CODER

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #8 en: Viernes 17 de Noviembre de 2006, 10:43 »
0
Uso el  DEVCPP

DAVID_CODER

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #9 en: Viernes 17 de Noviembre de 2006, 10:46 »
0
El compilador es GCC que esta integrado en DEVCPP

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #10 en: Viernes 17 de Noviembre de 2006, 11:04 »
0
Lo que da error es la ñ y no la L, proba a compilar sin la ñ ... o usa VC++ que te lo compila con la ñ e incluso si grabas el fuente en Unicode desde el notepad ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

DAVID_CODER

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #11 en: Sábado 18 de Noviembre de 2006, 19:53 »
0
en windows me compila si kito la ñ, en debian/linux con el gcc me compila el codigo integro k me has facilitado, pero al editarlo con "vi" o con "less" me sale algo como:

e@@@s@@@t@@@e@@@ t@@@e@@@x@@@t@@@o@@@ e@@@s@@@t@@@a@@@ e@@@n@@@ e@@@s@@@p@@@a@@@ñ@@@o@@@l

en windows si kito la ñ, compila y al editar con el bloc de notas sale:

e   s   t   e     t  e   x   t   o     e   s   t   a     e    n     e   s   p   a   o   l

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #12 en: Sábado 18 de Noviembre de 2006, 20:02 »
0
No se, ni quiero sabe, si vi o less soportan Unicode. Probablemente la historia con el notepad sea que segun lei por ahi gcc usa 4 bytes para cada caracter en vez de dos como Windows. Busca info en el Google/Wikipedia si queres saber mas al respecto, creo que habia una forma de hacer trabajar al gcc con 2 bytes.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

DAVID_CODER

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Problema Con Caracteres Especiales
« Respuesta #13 en: Sábado 18 de Noviembre de 2006, 20:05 »
0
si bueno, me parece haber leido k gcc trabaja a 16 bytes y las wchar_t son de 32, pero bueno, gracias por todo, 1 saludo