Re: Ordenació

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>
Cc: David Prieto <davidp(at)sgth(dot)es>, 'Xavier Vidal' <xvpxvp(at)menta(dot)net>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ordenació
Date: 2005-09-29 16:01:30
Message-ID: 20050929160130.GG5272@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Thu, Sep 29, 2005 at 10:01:04AM -0500, Manuel Sugawara wrote:
> Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> writes:
>
> > On Thu, Sep 29, 2005 at 08:37:06AM +0200, David Prieto wrote:
> >
> > Hola,
> >
> >> > Yo diria que los ambientes de ambos estan mal configurados.
> >>
> >> Efectivamente, mi base de datos se creó con LATIN1. El terminal desde el
> >> que hice un "psql" para hacer los inserts tiene:
> >>
> >> LANG=es_ES.UTF-8
> >
> > Antes de hacer los insert en ese terminal, debiste hacer "set
> > client_encoding=utf8".
> >
> > (Probablemente deberias borrarlos e insertarlos de nuevo en un terminal
> > con el client_encoding definido correctamente)
> >
> >> Y al terminal accedo mediante putty, desde Windows, configurado con
> >> "translation: ISO-8859-1:1998 (Latin-1, West Europe)"
> >>
> >> ¿qué debería hacer para que ordene bien?
> >
> > Y a este terminal deberias darle "set client_encoding=latin1"
>
> Estaba viendo este correo y no entiendo muy bien tu propuesta. ¿que
> tiene que ver la codificación del lado del cliente con la ordenación?.

Tiene que si insertas datos con una codificacion erronea, despues al
tratar de ordenarlo va a interpretar los bytes de manera equivocada.
(Es mas importante client_encoding al momento de _insertar_ los datos,
porque si se hace una recodificacion incorrecta en la entrada, los bytes
almacenados van a ser "cualquier cosa"; si al momento de extraer los
datos la codificacion tambien es incorrecta, lo peor que podria pasar es
que se vean "caracteres raros", pero la ordenacion deberia ser correcta)

Es solo una hipotesis, pero esta fundamentada porque he hecho
experimentos poniendo configuraciones erroneas y el ordenamiento en
algunas circunstancias es erroneo. Si la hipotesis es cierta, entonces
definiendo correctamente el client_encoding la salida de la ordenacion
deberia ser correcta. A decir verdad, me gustaria mucho que David
confirmara que esta conclusion es cierta o la refutara, para buscar
otra explicacion.

Una cosa que me tiene ligeramente intranquilo es que se supone que UTF-8
tiene algunas protecciones contra caracteres no validos. Es posible que
la secuencia de bytes que en latin1 se ve como "óm" sea una secuencia
UTF-8 valida que codifique un caracter totalmente distinto.

--
Alvaro Herrera Architect, http://www.EnterpriseDB.com
"El Maquinismo fue proscrito so pena de cosquilleo hasta la muerte"
(Ijon Tichy en Viajes, Stanislaw Lem)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Dario 2005-09-29 16:03:42 RE: operador (+)
Previous Message blackbeer 2005-09-29 16:00:35 Re: operador (+)