Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   La ñ (que viene en un fichero xml) no se ve con delphi xe2 y si se ve con delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=79036)

identsoft 04-06-2012 18:46:33

La ñ (que viene en un fichero xml) no se ve con delphi xe2 y si se ve con delphi 7
 
Pues eso es lo que me pasa. No se si a vosotros también os ha pasado.
Recibo un fichero xml con encoding 'ISO-8859-1'. Dentro van un dato que incluye una Ñ.
Creo el correspondiente datapacket.
Abro un formulario nuevo en delphi xe2. Inserto un XMLTransformprovider. Enlazo este componente con el datapacket correspondiente. Inserto en el formulario un clientdata set. Le asigno el xmlTransformProvider anterior. Inserto un datasource y un dbgrid correctamente enlazados. Activo el ClientDataset y aparecen los datos del fichero xml, pero no aparece las ñ. Aparecen caracteres extraños.
Realizo la misma operación con delphi 7. Sigo los mismos pasos, utilizo el mismo fichero xml y el mismo DataPacket y al activar el Clientdataset aparecen los datos del fichero xml incluido las ñ.
No he probado con los acentos, pero me parece que sucederá lo mismo.

¿Alguna idea de porqué funciona así?.¿Tengo que reconfigurar algo del Delphi XE2?
Un saludo para todos

duilioisola 04-06-2012 22:26:14

Delphi 2009 en adelante trabaja con strings unicode. Este debe ser el problema. Lo que no se es como podrías solucionarlo.

heroe555 05-06-2012 07:14:58

Ayuda con encoding XML
 
Podrías cambiar el encoding del XML por: 8859-15 (versión extendida). Puedes hacer una función que cambie el encoding cada vez que recibes el archivo XML.

identsoft 05-06-2012 09:16:10

Gracias a ambos por contestar, pero si cambio ISO-8859-1 por ISO-8859-15 tengo el mismo problema. De echo, ISO-8859-15 es una ampliación del ISO-8859-1 para el carácter del Euro.

Cambiando en el fichero encoding ISO-8859-1 por UTF-8 tampoco me soluciona el problema.

identsoft 05-06-2012 16:42:37

Suponiendo que el problema sea que Delphi XE2 trabaja con unicode, ¿cómo debería Delphi XE2 recibir un fichero, con Ñ, con algún carácter especial...?
Estoy perdido. Gracias de todas formas.

duilioisola 05-06-2012 17:21:29

Cita:

Recibo un fichero xml con encoding 'ISO-8859-1'
¿Estás seguro de esto?

Quizás está codificado en ASCII y habría que decirle que el formato del fichero es ASCII (#164 o #165)

Podrías abrir el fichero XML con un editor de hexadecimal para ver si la posición es una Ñ/ñ.
También podrás verificar si cada caracter está codificado con 2 caracteres o con uno solo.
También podrás ver si el fichero comienza con unos caracteres especiales que te dirán la codificación (BOM)

Espero que esto sea de ayuda...

identsoft 05-06-2012 18:04:59

¿Como puedo saber si viene en ASCII ?
El fichero viene con un encabezado ISO-8895-1
Yo lo puedo abrir con el bloc de notas y veo la Ñ/ñ perfectamente. No se me ha ocurrido abrirlo con un editor hexadecimal porque con cualquier editor de texto veo las Ñ/ñ.
El fichero no comienza con caracteres especiales.
¿Por donde comienzo?


La franja horaria es GMT +2. Ahora son las 04:03:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi