Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problemas con Acentos (https://www.clubdelphi.com/foros/showthread.php?t=48152)

enecumene 17-09-2007 18:12:09

Problemas con Acentos
 
Hola compañeros del foro, tengoun problema con los acentos con delphi+mysql, sucede que en la base datos los acentos estan bien pero al mostrarlos en delphi se cambia por unos caracteres extraños por ejemplo.

García -> GarcÃ*-a

:confused::confused::confused:

Saludos

Caral 17-09-2007 18:23:13

Hola
Que estas haciendo, no me parece logico lo que pasa.
Donde presentas la informacio?
Saludos

enecumene 17-09-2007 18:52:03

las estoy presentando en DBEdits sacados de los campos persistentes, trabajo con ZeosLib.

Caral 17-09-2007 18:58:27

Hola
Pues nunca me ha pasado, lo he hecho con mysql y con access
Que raro, talvez estes llamano a los datos de alguna manera que no reconoce esto, no se si tendra que ver windows en el panel, la verdad, no lo se, es nuevo para mi.
Espero lo soluciones.
Saludos

eduarcol 18-09-2007 18:51:45

has probado cambiar el juego de caracteres en la base de datos?, no lo he hecho con mysql pero por ahi tengo idea de haber oido que UTF8 servira

enecumene 18-09-2007 19:01:19

ese es el problema eduarcol, poniendo en cualquier collation o cotejamiento incluso utf8_general_ci, igual me sale los caracteres extraños, si lo veo en la misma base de datos los acentos estan bien, pero al mostrarlos en delphi se cambian los acentos.:confused::confused::confused:, incluso tengo una aplicacion en php con los mismos datos y presenta los acento bien solo en delphi ocurre eso.

Saludos.

enecumene 18-09-2007 20:01:38

:confused: no entiendo en mi pc los acentos se ven bien, pero en la pc donde realmente se utilizara la aplicacion los acentos se dañan, incluso desintale el appserv y lo instale de nuevo y aun asi sigue igual, es posible que sea windows??..

Saludos.

waly2k1 19-09-2007 10:53:44

Rta.
 
Segui por el lado de los juegos de caracteres. Lo mas probable es el tema del ansi/unicode que en Delphi no los represente como debería ser.

Salu2

enecumene 19-09-2007 17:05:18

gente no he podido resolver ese asunto de los acentos, he cambiado todos los cotejamientos a latin1_spanish_ci, utf8_general_ci etc, etc y sigue igual, al instalar mysql con appserv aparece una opcion donde ecojes el charset y no hay uno para el español y por defecto usa MySQL charset: UTF-8 Unicode (utf8). el windows xp de mi pc es en ingles y las pc donde se utiliza la plicacion es en español, existe la posibilidad que sea alguna esas dos opciones?

waly2k1 19-09-2007 18:23:38

Posible Solución
 
Mirá, una vez me pasó algo así con una aplicación de DOS, entonces cargaba dos Array, en uno las ocurrencias(acentos y caracteres de DOS) y en el otro los reemplazos, de manera de que cuando aparezca un caracter raro automaticamente lo reemplazaba por el que debia, pero tendrás que ver despues desde PHP como te queda. Probá con un solo registro.

la rutina es algo así, está echa en VB pero en Delphi es mas sencillo el tema de Arrays

Public Function Ansi2Unicode(sString As String)
Dim vArray1, vArray2
Dim nI As Integer
vArray1 = Array(" ", "‚", "¡", "¢", "£", "¤", "¥", "§", "¨", "*", "?", "š")
vArray2 = Array("á", "é", "í", "ó", "ú", "ñ", "Ñ", "º", "¿", "¡", "ü", "Ü")
For nI = 0 To UBound(vArray1)
If InStr(1, sString, vArray1(nI)) <> 0 Then // lo busca en Dephi Pos()
sString = Replace(sString, vArray1(nI), vArray2(nI)) // En Delphi AnsiReplaceString
End If
Next
Ansi2Unicode = sString
End Function

Código:

Delphi:
var
    i:Integer;
Const
    aArray1: Array[0..4] Of String = ( 'á', 'é', 'í', 'ó', 'ú' );
    aArray2: Array[0..4] Of String = ( 'á', 'é', 'í', 'ó', 'ú' );

Begin
        for i := 0 To High( aArray1 ) do

Espero te sirva de algo sino despues veo alguna otra solucion

enecumene 20-09-2007 02:26:44

Gracias waly2k1 , he descubierto que el problema proviene del mismo windows, he optado por eliminar los acentos y eñes por consultas, y ahora esta trabajando mejor.

De todas maneras muchas gracias a todos que intentaron ayudarme en este asunto, de corazon les agradezco su tiempo y esfuerzo.

Saludos.


La franja horaria es GMT +2. Ahora son las 01:58:14.

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