Página 1 de 1

Problemas con codificación de datos

NotaPublicado: 2012-06-10 16:22 @723
por hugo11ab
¿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.

Re: Problemas con codificación de datos

NotaPublicado: 2012-06-10 16:49 @742
por explorer
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í.

Re: Problemas con codificación de datos

NotaPublicado: 2012-06-10 17:05 @753
por hugo11ab
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.

Re: Problemas con codificación de datos

NotaPublicado: 2012-06-10 17:17 @762
por explorer
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.

Re: Problemas con codificación de datos

NotaPublicado: 2012-06-10 17:19 @763
por hugo11ab
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.

Re: Problemas con codificación de datos

NotaPublicado: 2012-06-10 17:25 @768
por explorer
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.