Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/01/2006, 16:29
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Buenas.

Si te muestra estos signos ???, me parece que es una buena señal. Es decir, acepta acentos, ñ's y un montón de otros símbolos, siempre que le pases los caracteres con la codificación correcta.

Si te muestra eso, estoy casi seguro de que es porque el dispositivo usa el encoding utf-8 (a mí me pasó muchas veces usando flash+mysql+php y me dió bastantes dolores de cabeza hasta que le agarré la vuelta).

Cuando le mandás iso-8859-1, que es el encoding que usa por defecto php cuando envía un echo (a menos que lo especifiques en header o escribas un metatag), el dispositivo no entiende algunos caracteres y te muestra "?".

Lo que tenés que hacer es mandarle utf8. Para eso, simplemente usá la función utf8_encode.

Código PHP:
$textoUTF8 utf8_encode($textoOriginal);
echo 
$textoUTF8
Asegurate de pasarle a cada string/cadena la función utf8_encode() antes de enviarla.

Una prueba/demostración de esto:

mostrar.php

Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<?php
include("utf8.php");
include("iso.php");
?>
</body>
</html> 
utf8.php

Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<b>Fuente original utf-8:</b><br>
Añoró<br>
</body>
</html> 
iso.php

Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<b>fuente original iso-8859-1:</b><br>
Añoró<br>
<b>fuente original iso-8859-1, CON utf8_encode():</b><br>
<?= utf8_encode("Añoró") ?><br>
</body>
</html> 
El archivo iso.php está codificado justamente en iso-8859-1; utf8.php, en utf-8 y mostrar.php, también en utf-8.

Grabá estos 3 archivos en el mismo directorio y abrí mostrar.php Preferentemente con FireFox; con IE no debería haber problemas, pero asegurate de que en ver->codificación esté seleccionado utf-8 (en cualquier caso).

Ok. lo que ves por pantalla esta codificado en utf-8, entonces. Vas a ver que en la línea siguiente a "fuente original iso-8859-1:" aparecen los benditos ???.

Pero en la última, no. Viene de la misma fuente (es decir, es iso-8859-1), pero última línea está codificada a utf-8. O sea que ya no hay problemas para mostrar acentos, ñ's y otros caracteres.

Suerte

Califa