Re: Problema ILIKE con UNICODE

From: "Javier A(dot) Villalba" <javier(dot)villalba(at)gmail(dot)com>
To: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: "PostgreSQL list ES" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Problema ILIKE con UNICODE
Date: 2007-11-21 15:24:48
Message-ID: b889a8450711210724t4f948286qb09d053ce86220e3@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Nov 21, 2007 12:02 PM, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> Javier A. Villalba escribió:
>
> > Hice mi tarea:
> >
> > => \encoding latin1
> > => \encoding
> > LATIN1
> >
> > => select * from test;
> > nombre
> > -----------------
> > sebasti�n mu
> > MAR�A MU�OZ
> > (2 rows)
>
> > Ayuda en algo?
>
> Hmmm, me pregunto qué codificación tendrá el terminal ese. ¿Es latin1 o
> UTF-8? Por este último resultado sospecho que es UTF-8.

Si, mi locale por default es es_AR.UTF-8.

> En todo caso algo que no me había percatado es que el servidor es 7.4,
> donde la funcionalidad de upper() y lower() solo funcionan en
> codificaciones de un byte :-( No funciona en UTF-8.

Supongo que por extensión, el ILIKE tiene el mismo comportamiento...
Perdón? sólo funciona en codificaciones de *UN* byte? Esto significa
que tampoco me serviría pasarme a LATIN1!? Tristeza não ten fin.

> Así que tienes dos
> alternativas:
> 1. actualizar a una versión más reciente, o
> 2. usar una codificación distinta para la base de datos

Ahá, entonces el problema definitivamente es la versión. La 2da
alternativa me suena más posible. Por default el proveedor tiene
seteada las DB en US-ASCII (totalmente descartado para mis datos!).
Ojalá pudiera pasarme al menos a LATIN1...

> Creo que lo que podrías hacer es usar to_ascii() para eliminar los
> acentos antes de hacer las búsquedas. Un tropiezo aquí es que no se
> puede convertir de UTF8 a ASCII directamente, así que debes hacer un
> paso intermedio por Latin1:
>
> alvherre=# select upper(to_ascii(convert('maría muñoz', 'utf8', 'latin1'), 'latin1'));
> upper
> -------------
> MARIA MUNOZ
> (1 row)

Muchas gracias Alvaro, tu respuesta se acaba de ganar una estrella.

--
J-

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Rodríguez Penabad 2007-11-21 15:25:29 Re: Error con el tipo de datos Timestamp
Previous Message Alvaro Herrera 2007-11-21 15:03:13 Re: fecha vacia