From: | Damian Culotta <dculotta(at)fibertel(dot)com(dot)ar> |
---|---|
To: | lordjose84(at)gmail(dot)com |
Cc: | "conrado(at)mapfre(dot)com(dot)ar" <conrado(at)mapfre(dot)com(dot)ar>, Ayuda PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Mostrar caracteres acentuados en PHP |
Date: | 2007-03-17 15:48:34 |
Message-ID: | 45FC0DD2.5080908@fibertel.com.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
José Manuel Ruiz escribió:
> Se me ha ocurrido otra opción para que no salgan los "caracteres
> raros" cuando pintas un texto que un usuario a escrito y tú almacenas
> en un campo text en la base de datos.
>
> crea una función en PHP que le pases el texto que ha escrito el
> usuario y te devuelva el texto en HTML. Utilizando la función de PHP
> str_replace, puedes crear todas las opciones.
>
> Por ej:
>
> function dame_text_en_html($text)
> {
> // signos < > en html
> $text=str_replace(array("<",">"), array("<",">"),$text);
> //tildes en vocales y ñ
> $text=str_replace(array("á","é","í","ó","ú","ñ"),
> array("$aacute;","$eacute;","$iacute;","$oacute;","$uacute;","ñ"),$text);
>
>
> //devuelve el texto en html
> return $text;
> }
>
> Una vez tienes el texto en HTML solo tienes que guardarlo en la base
> de datos y supongo que al pintarlo pasarás todas las validaciones de
> HTML. Porque incluso el texto que escribe el usuario estará en HTML.
>
> El problema estará cuando el usuario tenga que editar, que tendrás que
> ponerle el texto tal y como el lo puso. Porque es capaz de llamarte
> para decirte que tu apli no está funcionando bien. Pero simplemente
> está viendo código HTML en el editor.
>
> Un saludo.
>
> El día 13/03/07, *conrado(at)mapfre(dot)com(dot)ar
> <mailto:conrado(at)mapfre(dot)com(dot)ar>* <conrado(at)mapfre(dot)com(dot)ar
> <mailto:conrado(at)mapfre(dot)com(dot)ar>> escribió:
>
> Gente, buenos días.
> Tengo instalado postgresql en UTF-8. Tengo algunas funciones que
> devuelven
> el tipo de datos text, y en su contenido pueden venir caracteres
> acentuados.
> Probando la funcion desde pgAdminIII, no hubo problemas, pero
> cuando hago la
> llamada a la funcion desde php, me aparecen los famos caracteres
> 'raros'.
> La pregunta es, como hago para saber y cambiar el encoding del
> cliente para
> que pueda mostrar los caracteres acentuados?
> Es desde el servidor apache, configuracion de php?
>
> Desde ya, gracias.
> Saludos,
>
> ---------------------------(fin del
> mensaje)---------------------------
> TIP 4: No hagas 'kill -9' a postmaster
>
>
>
>
> --
> "Comparte lo que sabes, aprende lo que no sepas"
> Todo por el conocimiento libre
>
> Linux user number 441469
No sólo tenés qeu usar la etiqueta <meta http-equiv="Content-Type"
content="text/html; />, sino que podés establecerle el charset (lo cual
es más correcto).
En este caso, lo recomendado seria: <meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1 /> o <meta
http-equiv="Content-Type" content="text/html; charset=UTF-8 />.
También podés usar el set_client_encodig en Php para ustilizar una
codificación en la aplicación y otra en la base de datos.
Tercer detalle, podés forzar a que Apache sirva todas las páginas en una
codificación determinada, o hacer que no fuerze ninguna (en cuyo caso
los parámetros de tu html serian los que valen).
Espero qeu puedas resolver tu problema con estos tips.
From | Date | Subject | |
---|---|---|---|
Next Message | José Fermín Francisco Ferreras | 2007-03-17 15:58:50 | manual d psql |
Previous Message | jeferson alvarez | 2007-03-17 15:37:13 | Re: error al crear funcion "no existe tabla temporal" |