Evitar "signo de interrogacion" con caracteres ...¿raros?

Iniciado por wizache, 5 Julio 2007, 04:58 AM

0 Miembros y 1 Visitante están viendo este tema.

wizache

Hola que tal, siento el titulo no se me ocurrio como expresar la idea, este es el problema, quizá ya mcuhos han tenido el problema de que al poner n caracter como á ñ é y muchos caracteres por alguna razón el exploradro de internet no los lee y pone en vez de eso un signo de interrogación, para evitar esto claro se pone con su "entidad" o entity por ejemplo para el apostrife sería     ', el problema es que tengo una base de datos de noticias en las que seria muy complicado estar cambiado cada valor por su representación de esta forma, claro usaría una funcion para hacerlo que para mi no seria lo ideal, lo que quiero saber es si existe una función en php que haga esto por mí o alguna forma de que logre que le explorador reconozca este tipo de caracteres

Saludos!

Azielito

Pues con la funcion str_replace() de PHP podrias cambiarlo cuando se muestra :D

Código (php) [Seleccionar]
<?php

echo str_replace("'","&#39",$d['campo_de_BD']);
?>


Claro, mejor seria hacer una funcion que te reemplase todos los caracteres y que te regrese el valor del campo
;)


PD: con un ciclo es facil y rápido

SirLanceCC

Si pero habría muchos más caracteres areemplazar que esos, esi sin contar que puede haber caracteres chinos árabes y demás...

Esto es problema de la codificación que hay entre tu base de datos y tu sitio web. Por ejemplo si tu página está codificada en utf8 y tu base de datos está en Latin-1 (que yo creo es tu caso) se mostrarán esos simbolos de interrogación.

La solución es pasar tu página a Latin-1, o bien pasar tu base de datos a utf8. No sé que base de datos utilices (supongo que mysql) ni como ingreses los datos. Eso puede tener mucho que ver.

wizache

Si efectivamente como dice si lance son muchos caracteres los que hya que remplazar pero ya lo logre sin tener que ahcer eso solo puse en la cabezera el sigueitne codigo:

<?php header('Content-Type: text/html; charset=ISO-8859-1'); ?>

Saludos ;D

SirLanceCC

Pues ahi está: tenias tu página en utf8 (supongo) y tu base de datos en Latin1...
Ahora que ambas están el latin1 ya funciona bien...
por cierto hay una manera de hacerlo mediante las etiquetas head o meta.. no recuerdo, pero sin usar php

Azielito

Código (html) [Seleccionar]
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />