Re: Mostrar caracteres acentuados en PHP

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("&lt;","&gt;"),$text);
> //tildes en vocales y ñ
> $text=str_replace(array("á","é","í","ó","ú","ñ"),
> array("$aacute;","$eacute;","$iacute;","$oacute;","$uacute;","&ntilde;"),$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.

In response to

Responses

Browse pgsql-es-ayuda by date

  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"