Re: caracteres en UTF8

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Juan Martínez <jeugenio(at)umcervantes(dot)cl>
Cc: PAUL ELGUERA MEZA <pelgueram(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: caracteres en UTF8
Date: 2007-04-27 14:52:35
Message-ID: 20070427145235.GN4645@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Juan Martínez escribió:
> Alvaro Herrera escribió:
> >Juan Martínez escribió:
> >
> >>>P.D.: los servidores son linux, pero las maquinas desde donde saco y
> >>>repongo la bd son windows
> >>Ahi está tu problema :-) . En linux es tan simple con:
> >>
> >>pgdump bd > bd_dump.sql
> >>
> >>Y en el otro servidor:
> >>
> >>psql bd < bd_dump.sql
> >
> >No, el que el sistema operativo sea Windows no tiene nada que ver con el
> >problema.
>
> Si puede ser parte del problema.
> Por razones muy sencillas. He visto algunas versiones de WIN2k y WINXP
> en donde curiosamente UTF8 no viene activado de fabrica.

Y eso que tiene que ver? Postgres usa mecanismos UTF8 internos. Para
lo unico que usa el sistema operativo es strcoll(), que se usa para
ordenamientos, no para entrada/salida ni conversiones de codificacion.

> Entonces, más de alguna vez me ha tocado lidiar con hasefrosh donde
> definitivamente no decodifica un archivo particular. El problema se
> soluciona activando el charset en su configuración.

Postgres no decodifica archivos.

> El tema es que en linux la localizacion y el charset es bastante mas
> facil de saber, ademas, uno en linux normalmente activa una o dos
> localizaciones con sus respectivos charset... Te has fijado cuantos
> vienen activados en Windows?

Y eso que tiene que ver?

> > Si los servidores estuvieran todos en Linux, y las bases de
> >datos fueran todas iguales a como son ahora, tendría exactamente el
> >mismo problema que hoy tiene.
>
> El colistero dijo que los servidores estaban en linux.

Unos servidores estan en Linux, los otros estan en Windows. Ademas, si
los servidores estan en Linux, eso debilita tu argumento puesto que tu
decias que con los servidores en Linux no tendria este problema, lo cual
es evidentemente falso puesto que si los tiene.

> >>Algo que siempre resulta es agregar al principio del archivo dump, es:
> >>
> >>SET client_encoding TO utf8;
> >
> >Eso "siempre" resulta, cuando los datos que están en el dump están
> >realmente en UTF8. Si están en otra codificación, obviamente "siempre"
> >fallará.
>
> Claramente.
>
> Pero cuando hay cosas "raras", desde linux es más "facil" solucionarlas
> (me refiero a iconv) que en windows.

Aunque necesitaras iconv para resolver este problema, cosa que no esta
demostrada, hay otros mecanismos; pero ese no era el punto.

> Raya para la suma. Como puedes convertir transparentemente los datos de
> una tabla que se le metieron datos en codificaciones incorrectas?

Un error de codificacion en "algunos" datos nunca va a ser
"transparente" de solucionar, en ningun sistema operativo. Pero ese
tampoco era tu punto original; estas meramente confundiendo a la
audiencia.

No se me malentienda -- yo no adoro Windows y a decir verdad, ni
siquiera lo uso. Pero aca tienen la mania de echarle la culpa a Windows
a cosas que tienen otras explicaciones, lo cual me fastidia porque esta
no es una lista anti-Windows, sino una lista de Postgres en la cual
resolvemos los problemas de Postgres.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Antonio Vivanco 2007-04-27 14:56:58 Disfrazar Postgresql
Previous Message Juan Martínez 2007-04-27 14:11:34 Re: caracteres en UTF8