Foros del Web » Programando para Internet » PHP »

utf-8 en includes

Estas en el tema de utf-8 en includes en el foro de PHP en Foros del Web. Tengo un diseñador que me pasa archivos html. Los acentos y eñes se ven bien usando esta cabecera y escribiendolos normalmente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: ...
  #1 (permalink)  
Antiguo 28/11/2010, 09:59
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Pregunta utf-8 en includes

Tengo un diseñador que me pasa archivos html. Los acentos y eñes se ven bien usando esta cabecera y escribiendolos normalmente:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Para mi es raro, porque siempre escribí los acentos así &aacute;

Y la cuestion es que cuando yo convierto el html en trozos, y utilizo include, dejan de funcionar los acentos. Por que? Intente sumar esta cabecera a los includes pero nada:

Código PHP:
<?php header ('Content-type: text/html; charset=utf-8'); ?>
  #2 (permalink)  
Antiguo 28/11/2010, 10:11
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: utf-8 en includes

¿Has intentado usar utf8_encode o utf8_decode?

Me refiero a algo así :

Código PHP:
Ver original
  1. include('archivo.php');
  2. $include = ob_get_contents();
  3. echo utf8_encode($include);
  4. // O ...
  5. echo utf8_decode($include);

La verdad no sé si se puede utilizar esas funciones directamente sobre el include, así que me imagino que el ob_get_contents sería una opción.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 28/11/2010, 10:15
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: utf-8 en includes

Me gustaría evitar el uso de buffers ahora. En realidad, estoy trozando una plantilla, poniendo el menú en un archivo aparte, etc. Y no vale la pena.

Lo que quisiera entender es por qué los caracteres especiales funcionan en el archivo de HTML principal, pero no cuando se hace con includes. Y además, por qué no es necesario usar esta sintaxis &aacute;
  #4 (permalink)  
Antiguo 28/11/2010, 10:23
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: utf-8 en includes

Si no me equivoco, puede depender del browser. Si tu browser por defecto tiene activado el utf8, puede que esté interpretando los caracteres correctamente, pero al pasarlos por un include, no los interpreta, pero la verdad no sé .

Lo que puedes intentar, es guardar los trozos de html en archivos .html, no .php. Luego los reemplazas en el index con str_replace, a ver si funciona.

Tengo un código que hice alguna vez que dejé botado , en el cual el index tiene charset utf8, y un menu en un .html aparte. Este menú lo tomo con file_get_contents, y ese contenido lo reemplazo en el index. Y me funciona bien.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.

Etiquetas: includes, utf
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 10:59.