Ver Mensaje Individual
  #1  
Antiguo 23-07-2005
Berto2003 Berto2003 is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 59
Reputación: 22
Berto2003 Va por buen camino
Ayudaaaa!!! Tabla ASCII: El carácter Ñ vs. carácter ¥

Hola a tod@s.

Me ha surgido una duda-problema referente al juego de caracteres que utiliza Delphi, el BDE e Interbase/Firebird. He visto que existen preguntas parecidas en los viejos foros pero no he encontrado la solución a mi problema. El caso es que tengo el siguiente programa de ejemplo en Delphi 7 (dentro del BDE Administrator, Configuración, System, INIT, LANGDRIVER tengo seleccionado: 'ascii' ANSI)

ShowMessage(char(165)); --> Muestra el carácter: ¥
ShowMessage(char(209)); --> Muestra el carácter: Ñ

De forma inversa:

ShowMessage(IntToStr(ord('¥'))); --> Da el valor: 165
ShowMessage(IntToStr(ord('Ñ'))); --> Da el valor: 209

Hasta ahora todo correcto. Pero cual es mi sorpresa que al realizar Alt+165 en el editor de Delphi o en el bloc de notas me sale Ñ , y no el carácter ¥. Sé que a partir del 128 son extendidos pero, ¿de qué depende esos caracteres extendidos? ¿Del driver de lenguaje del BDE? ¿De la configuración regional del equipo? Pero por otro lado, si consulto la tabla de caracteres ASCII para el 165 aparece la Ñ, y el ¥ es el 157 . ¿Se puede deber a la función char? Esta función creo que está en el SysUtils pero ¿es realmente del API de Windows?

Todo esto viene porque en un campo Varchar de una BD con Firebird a la que no se ha elegido charset (está a NONE), al consultar ese campo desde una aplicación realizada con Delphi 5 se muestra correctamente el carácter Ñ en la palabra 'ESPAÑA', pero al escribirlo a fichero ese carácter se graba como el carácter ¥ (apareciendo 'ESPA¥A') lo cuál nos acarrea muchos problema. ¿Puede ser por el AssignFile y el tipo TextFile? Por favor, si os ha surgido a vosotr@s algo parecido y lo habeis solucionado os agradecería que me lo dijéseis.

Muchas gracias y hasta luego,
Berto2003
Responder Con Cita