Foros del Web » Programando para Internet » PHP »

tipo de caracteres por get ¿que es?

Estas en el tema de tipo de caracteres por get ¿que es? en el foro de PHP en Foros del Web. tengo una pagina con codificacion UTF-8 y recojo unas variables por GET exactamentes serian estas index.php?palabra=camión $query = $_GET['palabra']; $cambiar = array("ó"); $por = array("o"); ...
  #1 (permalink)  
Antiguo 10/10/2008, 06:13
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 22 años
Puntos: 6
tipo de caracteres por get ¿que es?

tengo una pagina con codificacion UTF-8 y recojo unas variables por GET exactamentes serian estas

index.php?palabra=camión

$query = $_GET['palabra'];

$cambiar = array("ó");
$por = array("o");
$query = str_replace($cambiar, $por, $query);

echo $query;

el caso es que haciendo esto el echo muestra 'camión' cuando lo que busco es que reenplace la 'ó' por 'o'

esiste alguna funcion para que formatee la palabra o frase recogida por get con el fin de que funcione lo que quiero sin necesidad de cambiar
$cambiar = array("ó");
por
$cambiar = array("su_forma en uft-8");



saludos. y gracias
  #2 (permalink)  
Antiguo 10/10/2008, 06:31
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: tipo de caracteres por get ¿que es?

a mi me hace la sustitucion perfectamente
haz un echo de $query antes de aplicar la funcion




Cita:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>pruebas</title>
</head>

<?php

$query = "camión";
echo $query;
echo"<br>";

$cambiar = array("ó");
$por = array("o");
$query = str_replace($cambiar, $por, $query);

echo $query;?>
?>
  #3 (permalink)  
Antiguo 10/10/2008, 07:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 22 años
Puntos: 6
Respuesta: tipo de caracteres por get ¿que es?

Hola jaronu
Te agradezco las molestias tomadas para probarlo

es cierto funciona tal como tu comentas,

el problema y perdona no haberlo explicado mejor es que lo recojo por GET y me e fijado que en la url se ve lo siguente

?query=%C3%A1

%C3%A1 es igual a 'á' lo que pasa es que cuando lo envio por el formulario sale asi, hice la prueba y borre de la url ese codigo y puse directamente una 'á' y me la sustituyo perfectamente

asi que la solucion que se me ocurre es que mi formulario no cambie los caracteres "raros" por esos signos

¿como podria hacer algo asi?
espero haberme explicado, un saludo
  #4 (permalink)  
Antiguo 10/10/2008, 08:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: tipo de caracteres por get ¿que es?

Prueba usar urldecode() sobre tu variable antes de hacer el replace.

Saludos.
  #5 (permalink)  
Antiguo 10/10/2008, 10:31
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 22 años
Puntos: 6
Respuesta: tipo de caracteres por get ¿que es?

Cita:
Iniciado por GatorV Ver Mensaje
Prueba usar urldecode() sobre tu variable antes de hacer el replace.

Saludos.
hola gatorV
seguramente estoy haciendo algo indevido en alguna parte del codigo, lo he solucionado asi

$cambiar= array("á","é","Ã*","ó","ú","Ã","É","Ã","Ó" ,"Ú");
$por= array("a","e","i","o","u","A","E","I","O","U");

ni idia de porque, me he fijado que incluyo este parrofo antes de charset=utf-8, pero he probado a ponerla y tambien me fallaba, asi que si no me decis que asi esta horroroso lo dejare asi
  #6 (permalink)  
Antiguo 10/10/2008, 11:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: tipo de caracteres por get ¿que es?

Mejor usa utf8_decode, el problema es que la variable te llega codificada.

Saludos.
  #7 (permalink)  
Antiguo 10/10/2008, 11:45
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: tipo de caracteres por get ¿que es?

Aplicaste la función urldecode() a la variable que recibes por el formulario. Eso debería solucionar el problema. Por qué no funciona? Te da algún error?

Código php:
Ver original
  1. $query = urldecode($_GET['palabra']);

Saludos,
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 21:24.