Foros del Web » Programando para Internet » PHP »

Acentos y otros caracteres no anglosajones.

Estas en el tema de Acentos y otros caracteres no anglosajones. en el foro de PHP en Foros del Web. Tengo un problema al hacer uso de un require en PHP. Anteriormente, tenía un archivo php que contenía texto HTML pero sin codificar. Cuando me ...
  #1 (permalink)  
Antiguo 24/04/2008, 08:31
Avatar de Mikimoto74  
Fecha de Ingreso: enero-2005
Mensajes: 88
Antigüedad: 19 años, 3 meses
Puntos: 2
Acentos y otros caracteres no anglosajones.

Tengo un problema al hacer uso de un require en PHP.

Anteriormente, tenía un archivo php que contenía texto HTML pero sin codificar. Cuando me dí cuenta ví que Dreamweaver me introducía los acentos tal cual, aunque al mostrarse, la página se mostraba bien. Entonces, hasta aquí bien.

Ahora, el texto HTML está alojado en otro php y es insertado mediante un require, y desde entonces sí que se visualizan mal esos caracteres en el navegador. Un ejemplo de lo que me aparece: "No encontrará un servicio más rápido...".

Alguna ayuda?
  #2 (permalink)  
Antiguo 24/04/2008, 09:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 52
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Acentos y otros caracteres no anglosajones.

Podrias filtrarlos con un utf8_encode y utf8_decode.

Aqui tienes ejemplos de uso: http://es2.php.net/manual/es/function.utf8-encode.php
  #3 (permalink)  
Antiguo 24/04/2008, 09:26
Avatar de Mikimoto74  
Fecha de Ingreso: enero-2005
Mensajes: 88
Antigüedad: 19 años, 3 meses
Puntos: 2
Re: Acentos y otros caracteres no anglosajones.

Gracias Xenzo, había pensado en esa función, pero no se me ocurre cómo aplicarla en este caso importando los datos con require(), y en PHP.net no veo un ejemplo parecido.
  #4 (permalink)  
Antiguo 24/04/2008, 10:00
Avatar de K-Yezaad  
Fecha de Ingreso: octubre-2005
Mensajes: 140
Antigüedad: 18 años, 6 meses
Puntos: 3
Re: Acentos y otros caracteres no anglosajones.

Tal vez funcione si en lugar de hacer require, lo lees con file_get_contents y despues el utf_encode. Ya una vez con el string corregido, le pasas eval() para que ejecute el php en el.
  #5 (permalink)  
Antiguo 25/04/2008, 01:31
Avatar de Mikimoto74  
Fecha de Ingreso: enero-2005
Mensajes: 88
Antigüedad: 19 años, 3 meses
Puntos: 2
Re: Acentos y otros caracteres no anglosajones.

He probado a hacerlo como dices K-Yezaad, pero tampoco funciona. Con eval() me daba directamente un syntax error con la apertura de la primera etiqueta html (<). Se ve que no se puede usar con HTML, sólo con PHP. Así que cambié el eval() por un echo, pero el resultado es que los caracteres especiales aún salen como más codificados y extraños. Como prueba, pongo el mismo texto que puse ayer:

No encontrará un servicio más rápido y fiable


Os pongo también el trozo de código en cuestión:

Código PHP:
switch($language) {
    case 
'espanol'$fichero file_get_contents('info_es.php');
    break;
    case 
'english'$fichero file_get_contents('info_en.php');
    break;
}
$fichero utf8_encode($fichero);
echo 
$fichero
Probé también cambiando el charset en el documento HTML origen:
de

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

a

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

y en este caso los acentos y demás aparecen bien, pero otros como el símbolo del euro salen mal.
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 06:03.