Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/08/2011, 15:53
lemmy2011
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 10 años, 7 meses
Puntos: 4
Codificación UTF-8

Hola a todos. Me estoy enfrentando al problema de la codificación UTF-8. Después de mucho leer, he llegado a la conclusión que lo mejor es pasar toda la aplicación web a esta codificación. Pues bien, estoy en la parte a priori más sencilla. Y sería, para cada una de mis páginas PHP:

1º incluyo el header header ('Content-type: text/html; charset=utf-8');
2º dentro del <head> inlcuyo <meta http-equiv="Content-Type" content="text/html; charset="utf-8" />

Vale. Ahora ejecuto una web que sólo muestra contenido estático ( es decir, texto puesto a mano, ni base de datos ni nada ). Antes de la modificaciones se veía bien. Y, despues la dos modificaciones que os comentaba, se ve mal. Consultando por ahí, dicen que las páginas .PHP DEBEN GRABARSE CON FORMATO UTF-8. Es decir, desde un editor de texto, hacer un "Guardar Como", y seleccionar el formato UTF-8. Vale, vuelvo a ejecutar y va perfecto. Peeeeero, ahora, a esta web le vinculo un php externo mediante "include". Evidentemente, a este php externo, le pongo el header ('Content-type: text/html; charset=utf-8'); Pues bien, en el momento que pongo el "include" pasa una cosa muy rara... y es que el contenido de la web principal que empezaba en la posición 0,0 se me desplaza hacia abajo!! El código de ejemplo sería este:

<?
header ('Content-type: text/html; charset=utf-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8" />
<?
include("./php_externo.php");
?>
</head>
<body style="margin:0px;padding:0px">
<div style="background:red;">a</div>
</body>
</html>

donde "php_general.php", para descartar que tenga algo raro, tiene un código tan simple como este:

<?php
header ('Content-type: text/html; charset=utf-8');
function fun_aa()
{
echo 'aa';
}
?>

( a "fun_aa()" no la llama nadie )

Pues "<div style="background:red;">a</div>" se muestra en la posición 0,0 si no le pongo el include. En cambio, si se lo pongo, aparece desplazado hacia abajo.

Mis dudas son dos:
1º ¿¿¿Qué hago mal????
2º Para trabar con formato UTF-8 a todos los niveles en mi web, realmente debo guardar los fichero php con mi editor de texto, como UTF-8???

Otra cosa importate. Si no grabo el PHP como "UTF-8", entonces sí que funciona! Tanto con el include como sin él. Pero claro... si hago eso... entonces me aparecen lso caracteres raros.

Muchas gracas por vuestro tiempo y ayuda