Foros del Web » Programando para Internet » PHP »

Matriz que devuelve caracteres raros

Estas en el tema de Matriz que devuelve caracteres raros en el foro de PHP en Foros del Web. Hola a todos de nuevo: Tengo un problema con unos valores devueltos por una matriz que han sido sometidos a funciones "preg_". El código es ...
  #1 (permalink)  
Antiguo 12/02/2009, 16:30
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 5 meses
Puntos: 8
Pregunta Matriz que devuelve caracteres raros

Hola a todos de nuevo:

Tengo un problema con unos valores devueltos por una matriz que han sido sometidos a funciones "preg_". El código es el siguiente:

Código PHP:
<?php
echo '<html><head>';
echo 
'<meta http-equiv="Content-Type"    content="text/html; charset=utf-8" />';
echo 
'</head><body>';
$txt "Éspañata España Francia éspaña españa España hespaña";
$my_array explode(" "$txt);
print_r($my_array); // Compruebo que los valores mantienen los acentos
$regularexpresion "/españa/i";
$regularexpresion preg_replace(".e.","[e|é|E|É]"$regularexpresion);
echo 
'<br>'.$regularexpresion.'<br>';
preg_match_all($regularexpresion$txt$spain);
$ver implode(", "$spain[0]);
print_r ($spain); // Devuelve los valores encontrados y es aquí donde se muestran los caracteres raros
?>
Lo que obtengo es lo siguiente:

Array ( [0] => Éspañata [1] => España [2] => Francia [3] => éspaña [4] => españa [5] => España [6] => hespaña )
/[e|é|E|É]spaña/i
Array ( [0] => Array ( [0] => �spaña [1] => España [2] => �spaña [3] => españa [4] => España [5] => españa ) )

Como podéis ver la impresión de la última matriz me devuelve caracteres raros.

Debe de ser algo de PHP porque lo he probado en varios navegadores tanto bajo Windows como Mac OSX.

Se agradece que alguien tenga, como poco, una explicación.

Gracias y un saludo.
  #2 (permalink)  
Antiguo 12/02/2009, 17:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Matriz que devuelve caracteres raros

Hola auttranadhie,

Prueba usar utf8_decode sobre la variable.

Saludos
  #3 (permalink)  
Antiguo 12/02/2009, 17:37
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: Matriz que devuelve caracteres raros

Hola, GatorV:

He probado lo que me has dicho pero la cosa sigue igual. Como verás la página está codificada en UTF8 pero no me devuelve los valores cuando lo paso por una función "preg_"; sin embargo, si vuelco los valores de la primera matriz todo va bien.

Un saludo.
  #4 (permalink)  
Antiguo 12/02/2009, 18:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Matriz que devuelve caracteres raros

Prueba cambiar el locale usando set_locale.

Saludos
  #5 (permalink)  
Antiguo 13/02/2009, 04:28
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: Matriz que devuelve caracteres raros

Hola, de nuevo, GatorV:

Ya lo había probado anteriormente y ni por esas. De hecho, estuve investigando en la página de la documentación principal y en la ficha de setlocale() hay un comentario de michal dot kocarek at brainbox dot cz acerca del uso de la codificación utf8 en sistemas Windows.

Lo más curioso es que puedo escribir con acentos y eso, pero el problema está en el valor que devuelve la matriz.

¿Has probado a copiar las líneas del código y ejecutarlo en tu sistema? ¿Te ocurre lo mismo?

Gracias y un saludo.
  #6 (permalink)  
Antiguo 13/02/2009, 10:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Matriz que devuelve caracteres raros

Mmm probando si pasas el modificador /u se arregla el problema:
Código php:
Ver original
  1. $regularexpresion = "/españa/ui";

Saludos
  #7 (permalink)  
Antiguo 13/02/2009, 16:07
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 5 meses
Puntos: 8
De acuerdo Respuesta: Matriz que devuelve caracteres raros

Hola, GatorV:

Muchas gracias. Justo era una de las cosas que tenía en mente probar, aunque no sabía si la sintaxis era la adecuada para unir más de un modificador.

La verdad es que ha sido un alivio.

Gracias de nuevo y un saludo.
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

SíEste tema le ha gustado a 1 personas




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