From: | Sizu <pixradio(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Busqueda con carácteres latinos |
Date: | 2007-06-26 17:35:14 |
Message-ID: | 60940ad0706261035x29b4028fs804be5c700c69eb3@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Tienes razón. Pude ver directamente en la Base de Datos y, en efecto, se
esta guardando "ó" en lugar de "ó".
El problema lo he solucionado pasando la cadena que recibo por la función
htmlentities() de PHP [1], como bien me sugieren tú y "usuario anonimo" que
igual respondió a este mensaje. Muchas gracias a ambos.
Pero no me queda clara una cosa. Igual pasé dicho valor recibido --en
pruebas-- por la función mb_detect_encoding() [2] que me devuelve la
codificación y resultó que mi cadena estaba en UTF8; ¿por qué recibo la
cadena en UTF8 (enviada por POST) si la codificación de la página
(especificada en los metas HTML) es ISO-8859-1?.
[1] http://www.php.net/htmlentities
[2] http://www.php.net/mb_detect_encoding
On 6/26/07, Miguel Rodríguez Penabad <penabad(at)gmail(dot)com> wrote:
>
> 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ó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 < 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ó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 ó 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 ó ANTES de ejecutar la consulta.
> Eso si, si tienes alguna página almacenada con "ó" no la encontrará.
>
> Saludos
> --
> ---------------------------(fin del mensaje)---------------------------
> TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>
From | Date | Subject | |
---|---|---|---|
Next Message | Yoel Mc Lennan | 2007-06-26 18:57:17 | Re: [pgsql-es-ayuda] OT , Obtener ID (PK) dese código VB6 con odbc |
Previous Message | Jose Cariqueo | 2007-06-26 17:16:39 | RE: [pgsql-es-ayuda] Conocer el id después de insertar un registro nuevo |