Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   actualizar campos utf8 a partir de campos acentuados (https://www.clubdelphi.com/foros/showthread.php?t=96195)

jars 11-04-2023 17:35:53

actualizar campos utf8 a partir de campos acentuados
 
Hola, tengo el siguiente problema con Firebird 2.5:
En una tabla de usuarios esta definido el campo USER_LAST_NAME con charset = NONE.
El problema es que cuando el cliente por medio de una aplicación carga el apellido del usuario con acentos o con Ñ, en la base quedan con caracteres tales como é para el acento y otro tanto para la Ñ. Lo que hice fue crear un dominio asi:

CREATE DOMAIN USERNAME VARCHAR(15) CHARACTER SET UTF8 collate UNICODE_CI_AI

Luego cree el nuevo campo newapellido con ese dominio.
Para actualizar el campo nuevo use:

UPDATE users SET NEWAPELLIDO = CAST(CAST(USER_LAST_NAME as VARCHAR(15) CHARACTER SET ISO8859_1) as VARCHAR(15) CHARACTER SET UTF8)

También probé con :

UPDATE users SET NEWAPELLIDO = CAST(CAST(USER_LAST_NAME as VARCHAR(15) CHARACTER SET NONE) as VARCHAR(15) CHARACTER SET UTF8)



Pero el campo NEWAPELLIDO queda con los mismos caracteres especiales, por ejemplo Coldéira, en el campo original esta como Coldéira y al hacer el update queda exactamente igual Coldéira.

Son distintos clientes y no tengo chances de poder recrear las tablas.

Alguna ayuda ?

Gracias

Casimiro Notevi 11-04-2023 18:27:55

Si ya has guardado con iso8859_1 no vas a poder codificarlo a utf8.
A lo mejor puedes exportar esos apellidos a un fichero de texto (o tabla externa), leerlo con notepad++ (por ejemplo), cambiarle la codificación a utf8, guardar de nuevo el fichero y después importarlo (leer la tabla externa) hacia la base de datos.
Una vez convertidos y en la BD puedes pasarlo al campo nuevo que quieras con el utf8.

EDITO: A ver si te sirve esto.

jars 11-04-2023 18:39:34

Gracias Casimiro


La franja horaria es GMT +2. Ahora son las 08:51:29.

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