Foros del Web » Programando para Internet » PHP »

require_once y caracteres especiales

Estas en el tema de require_once y caracteres especiales en el foro de PHP en Foros del Web. Hola, Tengo un index.php con varios "require_once": cabecera, menú, contenido y pie: Código PHP: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml:lang="es" lang="es" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />  </head> <body> <div id="body">     <div id="botonera"> <?  require_once( 'includes/botonera.php' ...
  #1 (permalink)  
Antiguo 23/06/2006, 04:56
Avatar de txus35  
Fecha de Ingreso: mayo-2005
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 0
require_once y caracteres especiales

Hola,
Tengo un index.php con varios "require_once": cabecera, menú, contenido y pie:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="es" lang="es" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
</head>

<body>

<div id="body">
    <div id="botonera"><? require_once('includes/botonera.php');?></div>
    
    <div id="contenedor">    
        <div id="menu">
            <? require_once('includes/menu.php');?>
        </div>
        <div id="contenido">
            <? require_once('home.php');?>
        </div>
    </div>    
        
    <div id="pie">
        <? require_once('includes/pie.php');?>
    </div>
</div>

</body>
</html>
Cada uno de los "requires_once" contiene textos en castellano con caracteres especiales: acentos, eñes...etc. Son todos de este tipo:

Código HTML:
<div id="contenido">
	<p>Caracteres especiales: españa, caña, polución.</p>
</div> 
Si coloco en el HEAD la sentencia: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> sólo consigo que se visualicen correctamente los caracteres especiales de #contenido y de #pie, el resto no se ven.

Si coloco en el HEAD la sentencia: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> visualizo bien #botonera y #menu pero no los otros.

Me gustaría saber qué tengo que poner en el HEAD para que se visualicen correctamente los caracteres especiales de todos los "require_once".
Un saludo a todos.
  #2 (permalink)  
Antiguo 23/06/2006, 05:42
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
Yo pondrí el charset=UTF-8 y haría una función que substituyera los carácteres especiales por su equivalente utf usando la función str_replace. Un saludo.
  #3 (permalink)  
Antiguo 23/06/2006, 16:37
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Yo pondrí el charset=UTF-8 y haría una función que substituyera los carácteres especiales por su equivalente utf usando la función str_replace.
... pero si presisamente la idea el utilizar UTF-8 es no tener que cambiar esos carácteres...

txus35: ¿tienes todos los archivos guardados con la misma codificación?; esto es... desde tu editor. Pregunto pero estoy casi seguro es por ahí el error.

Ah!... y aconsejo que manejes UTF-8 para todo; asegurate tu servidor entregue esa misma codificación.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 26/06/2006, 06:51
Avatar de txus35  
Fecha de Ingreso: mayo-2005
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 0
Cada uno de los "requires_once" es un fichero php con etiquetas DIV simples. Algo parecido a ésto:

Código HTML:
<div id="contenido">
<h1>Título</h1>
<p>Textos o párrafos con caracteres especiales: eñes, acentos y otras yerbas...</p>
</div> 
La cosa se soluciona si coloco en la primera línea de cada uno de ellos la sentencia:
Código HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
Pero la solución me parece poco elegante pq es repetir código. Estaría bien saber si desde la página desde donde se llaman los requires (index.php), se puede controlar de alguna manera la visualización de caracteres especiales.
  #5 (permalink)  
Antiguo 26/06/2006, 09:25
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
txus35, verifica lo que te esta diciendo jam1138, tu problema debe ser el encoding en que están guardados estos archivos. Por otro lado, no es necesario usar utf-8 para el lenguaje español, con usar iso 8859-1 basta, eso si, en todos lados....

PD: Que editor estas usando? en el dream 8 por ejemplo haces ctrl+j ahí vas a title/encoding, y en encoding le pones "europeo occidental".
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #6 (permalink)  
Antiguo 26/06/2006, 10:17
Avatar de txus35  
Fecha de Ingreso: mayo-2005
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 0
Solucionado !!!
Gracias Nicolaspar y Jam1138.
En index.php, archivo que llama a los require_onces, he puesto una cabecera correcta y la referencia al "europeo-occidental":

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
	<title>INDEX</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
No ha hecho falta poner cabeceras en cada uno de los "require_onces". Basta con ponerla una única vez en index.
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 16:48.