Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Caracteres arabes sql server + delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=83844)

drykea 05-08-2013 13:25:27

Caracteres arabes sql server + delphi 7
 
Hola a todos.

Tengo una aplicacion con labels que tienen que contener caracteres arabes leidos de una base de datos de sql server.
Utilizo sql server 2000 y delphi 7.

En la base de datos los campos estan bien, pero cuando los leo en mi aplicación me salen as´: '??????'

¿Alguien sabe que puede pasar?
Adjunto el codigo donde los leo:

Código Delphi [-]
     ADOQIdioma.Locate('Etiqueta','lPrincipal1',[loCaseInsensitive]);           //ADOQIdioma = ADOQuery
      lprincipal1.BiDiMode:= bdRightToLeft;                                     //lprincipal1 = label                     
      lPrincipal1.Font.Charset := ARABIC_CHARSET; 
      lPrincipal1.caption := ADOQIdioma.FieldByName('Traduccion').asString;

He buscado por ahí, pero no he encontrado nada que me sirva.

Gracias de antemano

Ñuño Martínez 05-08-2013 15:40:39

No tienes instalado Unicode, o no lo tienes correctamente configurado, o tu aplicación no es capaz de gestionar cadenas Unicode, o no realizas la codificación/conversión de cadenas apropiada.

drykea 05-08-2013 18:37:41

Gracias, por tu respuesta.

¿Puedes decirme como compruebo si lo tengo instalado o como instalar lo?

Ñuño Martínez 08-08-2013 13:42:05

Eso es un tema del sistema operativo, Windows en tu caso. Para comprobarlo, simplemente abre un editor de texto (mejor en un "Office") y escribe en él con los abecedarios que necesites y con la misma tipografía que usas en el programa. Si no sale, es que la tipografía que usas no tiene soporte UNICODE o no lo tienes instalado. Para instalarlo debería bastar con obtener la tipografía completa, con el soporte UNICODE, y copiarla en el directorio "fonts" (si no recuerdo mal, porque hace mucho que no lo hago en Windows), aunque creo que con pulsar sobre el archivo te pregunta si quieres instalarla.

Si ya la tienes instalada (es decir, puedes escribir correctamente en el editor de texto), mira en la configuración del gestor de bases de datos, para comprobar la codificación que usa en los tipos de texto (para UNICODE debería ser UTF-8, UTF-16 ó UTF-32).

Luego comprueba si en el programa estás usando el tipo de dato correcto, que en Delphi 7 debería ser, al menos, WIDESTRING. No recuerdo si esa versión tiene UNICODESTRING o si fue un añadido posterior. En esta página tienes más información; es para el Delphi XE3, pero la mayor parte de las explicaciones deberían servirte igual, y puedes tirar del hilo desde ahí.


La franja horaria es GMT +2. Ahora son las 22:28:15.

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