• Publicidad

Problemas con codificación de datos

Todo acerca de las bases de datos que existen: SQL, MySQL, Oracle, Postgres, CSV, etc.

Problemas con codificación de datos

Notapor hugo11ab » 2012-06-10 16:22 @723

¿Qué tal? Estoy tratando de migrar unas bases de datos que tengo en un sistema operativo Fedora 7 a Debian 6. El gestor de bases de datos que estoy utilizando es PostgreSQL. El problema que tengo es que al generar la base de datos con codificación "SQL_ASCII" (que es como tengo la base de datos en Fedora 7) en Debian, me manda el siguiente error:

Falló la creación de la base de datos:
ERROR: la nueva codificación (SQL_ASCII) es incompatible con la codificación de la base de datos patrón (UTF8)


He generado la base de datos con codificación UTF8, que es la que se me da por default pero al momento de cargar el archivo que contiene la información de la base de datos, en algunos registros me manda la siguiente leyenda:

ERROR: secuencia de bytes no válida para codificación «UTF8»: 0xf36e2032
SUGERENCIA: Este error también puede ocurrir si la secuencia de bytes no coinciden con la codificación esperada por el servidor, lo cual es controlado por el parámetro «client_encoding»


¿Cómo puedo cambiar la codificación "SQL_ASCII" a UTF8?
También tengo dudas, si las palabras con acentos, la 'ñ', el formato de fechas (dd/mm/aaaa) van a sufrir cambios con la codificación UTF8?

O qué me recomiendan hacer para solucionar este problema.
hugo11ab
Perlero nuevo
Perlero nuevo
 
Mensajes: 77
Registrado: 2006-07-22 23:24 @016

Publicidad

Re: Problemas con codificación de datos

Notapor explorer » 2012-06-10 16:49 @742

La secuencia 0xF36e2032 corresponde a "ón 2", por lo que, sospecho, el texto sigue estando en ASCII.

No sé cómo se hace un cambio de codificación en una PostGreSQL, pero la forma manual es ir leyendo la información de una codificación, transformarla, y grabar el resultado en la nueva.

En Perl, puedes usar el módulo Encode para realizar la transformación.

Debería existir algún módulo en Perl para hacer estas cosas, o algún programa ya hecho, pero no los encuentro.

Si las fechas se componen de números, no serán afectados por el cambio de codificación. Si son fechas cortas o largas (aparecen los nombres de los días o meses), sí.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problemas con codificación de datos

Notapor hugo11ab » 2012-06-10 17:05 @753

Gracias, explorer. Las fechas que manejo en la base de datos son cortas, por ejemplo el día de hoy 10/06/12 (son de este tipo).

He estado buscando y no he encontrado una manera de cómo hacerlo, inclusive separé las tablas (en un archivo) y los insert en otro, pero me sigue arrojando los mismos problemas.

Utilizaré el módulo que me recomendaste a ver qué pasa.
hugo11ab
Perlero nuevo
Perlero nuevo
 
Mensajes: 77
Registrado: 2006-07-22 23:24 @016

Re: Problemas con codificación de datos

Notapor explorer » 2012-06-10 17:17 @762

Ese tipo de fechas no te darán problemas.

Para hacer las codificaciones te vale con ir leyendo las tablas y ir codificando los campos de las columnas que sabes que contendrán texto. De las columnas que contendrán datos binarios o fechas, pues no hay que hacer nada.

Si las dos máquinas están en línea, incluso se podría hacer un programa para que se conectara a los dos motores de datos, y fueras yendo tabla por tabla, haciendo consultas en una, codificando, y grabando el resultado en la otra.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problemas con codificación de datos

Notapor hugo11ab » 2012-06-10 17:19 @763

Gracias, explorer. De acuerdo al significado de la secuencia que pusiste encontré este enlace.

http://ingdesistemasvzla.blogspot.mx/20 ... n1-en.html

Las bases las dejé con la misma codificación "SQL_ASCII", para no tener problemas. Mi duda es si sería recomendable pasarlas a la codificación utf8.
hugo11ab
Perlero nuevo
Perlero nuevo
 
Mensajes: 77
Registrado: 2006-07-22 23:24 @016

Re: Problemas con codificación de datos

Notapor explorer » 2012-06-10 17:25 @768

Eso depende de quién vaya a usar esa información.

Por ejemplo, si la información de la base de datos se va a pasar a un sistema que crea páginas web dinámicas, y la codificación por defecto de las páginas está en UTF8, entonces ese sistema deberá hacer un cambio de codificación para meter la información desde la base de datos a las páginas web.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Bases de datos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados