Re: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] acentos y ñ

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
Cc: Vida Luz Arista <vida(dot)arista(at)ideay(dot)net(dot)ni>, Cesar Erices <caerices(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] acentos y ñ
Date: 2009-06-16 19:21:29
Message-ID: 20090616192129.GF7519@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Emanuel Calvo Franco escribió:

> iconv -f ASCII -t UTF-8 archivo_del_dump > nuevo_archivo

Ojo con este paso. No puedes hacer "-f ASCII", porque los datos no
están en ASCII propiamente tal. Es probable que los datos estén en
Latin1 o bien en UTF8, o peor aún, que algunos datos estén en una y
otros en otra. (ASCII es una codificación de 7 bits; no hay acentos ni
ñ en ASCII. La codificación SQL_ASCII no es realmente ASCII, sino que
es una declaración del usuario que significa "me importa una mierda en
qué codificación están los datos, sólo guárdalos y deja de joder").

Si todos los datos son UTF8, no hay que hacer ninguna conversión. Basta
con hacer un dump, crear la nueva base de datos con UTF8, y hacer el
restore.

Si los datos son latin1 (o latin9 que es prácticamente lo mismo) tampoco
es necesario hacer la conversión: puedes dejar que Postgres la haga.
Sólo debes asegurarte de que el restore se haga así:

PGOPTIONS="-c client_encoding=latin1" pg_restore ... -f archivo_del_dump
O bien (si el dump es de texto)
PGOPTIONS="-c client_encoding=latin1" psql ... -f archivo_del_dump

Si es el tercer caso (mezcla de codificaciones), lo que hay que hacer es
arreglar los datos manualmente para que queden todos los datos en una de
las dos, y luego usar uno de los procedimientos de arriba.

Nota que si eso de "arreglar manualmente" puede ser más sencillo de lo
que suena (¡¡no es necesario editar el archivo manualmente para arreglar
los acentos!!), pero lo más importante es que entiendas lo que está
sucediendo.

--
Alvaro Herrera http://planet.postgresql.org/
Major Fambrough: You wish to see the frontier?
John Dunbar: Yes sir, before it's gone.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Emanuel Calvo Franco 2009-06-16 19:36:45 Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] acentos y ñ
Previous Message Emanuel Calvo Franco 2009-06-16 19:10:51 Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] acentos y ñ