Foros del Web » Programando para Internet » PHP »

Codificación utf-8

Estas en el tema de Codificación utf-8 en el foro de PHP en Foros del Web. Hola, Bueno, tengo un problema complejo que no sé ya qué hacer, he probado de todo. Os cuento: Tengo una página con: <meta http-equiv="Content-Type" content="text/html; ...
  #1 (permalink)  
Antiguo 11/07/2008, 18:28
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Pregunta Codificación utf-8

Hola,

Bueno, tengo un problema complejo que no sé ya qué hacer, he probado de todo. Os cuento:

Tengo una página con:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

y un buscador en ella. Pues cojo la variable buscada:
Código PHP:
<?php $b $_GET['b']; ?>
para ponerla en el campo de texto:

<input type="text" name="b" value='<?php echo $b; ?>'>

Pues cuando se usa el campo de texto del formulario, y se da a "Enviar" la palabra del campo de texto se ve bien, pero cuando se usa la barra del navegador no, es decir, cuando cambias la dirección manualmente sin usar el formulario, por ejemplo: .../index.php?b=españa lo cambias a b=españa+mañana.

Pues no sé por qué salen caracteres no reconocidos (la interrogación con fondo negro, por la ñ, por ejemplo). Lo raro es que cuando pongo
Código PHP:
<?php echo $b?>
sale ya codificado a utf-8 (así que se ve bien, porque la web está en charset=UTF-8), por eso no tengo que poner
Código PHP:
<?php echo utf8_encode($b); ?>
(codifica dos veces, se ve mal).

Además hago que cada búsqueda se añada a un archivo .xml, que es un mapa para google, y cuando hay un carácter que no se reconoce el mapa no lo recibe google.

Alguien sabe qué puedo hacer? Aunque sea
Código PHP:
<?php echo str_replace("?","",$b); ?>
es decir, quitar el carácter ese irreconocible, pero claro, la interrogación no vale.

También he probado htmlentities, y sale peor.

Pensado, lo único que se me ha ocurrido es que cuando se envía la consulta por formulario lo pasa codificado a utf8, por eso se ve bien, pero cuando se cambia el valor de ?b= desde el navegador no se codifica.

Me he explicado bien?

Última edición por JoniJnm; 12/07/2008 a las 14:24
  #2 (permalink)  
Antiguo 17/10/2009, 12:31
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 10 meses
Puntos: 5
Respuesta: Codificación utf-8

en vez de encode usa decode y si te da problemas asi htmlentities(decode
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:38.