Re: Busqueda con carácteres latinos

From: Miguel Rodríguez Penabad <penabad(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Busqueda con carácteres latinos
Date: 2007-06-26 16:16:18
Message-ID: 95335e4e0706260916q7dc31875s536b49c112cf6d37@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 26/06/07, Sizu <pixradio(at)gmail(dot)com> escribió:
> Saludos a todos. Quizá esto sea un tanto OFFTOPIC pero espero alguien sepa
> darme una luz.
>
> Estoy añadiendo un módulo de búsqueda a una aplicación hecha en PHP. Mi
> problema es que al enviar una cadena de caracteres latinos no regresa
> resultados, sin embargo enviándola como HTML sí los encuentra; esto no
> funciona: "atención"; esto sí funciona: "atenci&oacute;n".

Vamos a ver si te entiendo: En la base de datos hay almacenados textos
que pueden contener caracteres especiales para HTML (que no latinos,
porque "<" no es latino y en HTML tienes que poner &lt; a no ser que
sea para empezar un tag).

Cuando mandas una consulta,
select ... where campo like '%atención%'
no funciona, y
select ... where campo like '%atenci&oacute;n%'
si que funciona.

Pues entonces, si es así, yo creo que no tiene nada que ver ni con
postgres, ni encodings, ni siquiera con el gestor de BD que uses.
El problema es que estás almacenando &oacute; y no ó, por lo que el
LIKE nunca va a funcionar buscando ó. Lo que yo te sugeriría, y es una
"chapuza", es que antes de construir la sentencia con el LIKE,
conviertas la cadena de caracteres con HTMLEncode o HTMLSpecialChars o
como narices se llame la función :)
para que transforme la ó en &oacute; ANTES de ejecutar la consulta.
Eso si, si tienes alguna página almacenada con "ó" no la encontrará.

Saludos

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Rodríguez Penabad 2007-06-26 16:19:32 Re: OT , Obtener ID (PK) dese código VB6 con odbc
Previous Message Yoel Mc Lennan 2007-06-26 16:02:25 OT , Obtener ID (PK) dese código VB6 con odbc