Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/09/2008, 06:34
Miguelso23
 
Fecha de Ingreso: abril-2008
Ubicación: en Montevideo
Mensajes: 25
Antigüedad: 16 años
Puntos: 0
Pregunta Particular error con Codificacion en PHP

Hola, tengo un error que aún no puedo terminar de entender, y para esto me voy a valer de una imagen que lo dice todo.

Solamente espero que alguien me pueda dar una explicación de por que sucede esto y de paso ayudar a quien tenga el mismo problema!

El problema se desarrolla así:

En mi trabajo estamos desarrollando un sitio en php y mysql, desde que comenzamos yo me encargué de que los archivos estuvieran correctamente codificados en utf 8 al ser guardados y además que en todos los archivos este la línea

Código:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Además tambien tenemos nuestra base de datos codificada en utf 8.

Hasta aquí todo marcha.
Luego de ya haber trabajado con una gran cantidad de archivos comienzan las diferencias; para empezar he tenido, en más de una ocación, que valerme de las funciones de PHP utf8_encode y utf8_decode, ya que el texto no se imprimía con normalidad, en algunas ocaciones era que el archivo que contenia ese texto no estaba guardado en utf8, pero en otras estaba correctamente guardado y aún así se imprimían mal los caracteres, pues bien, si alguien entiende porque puede pasar esto, agradezco una respuesta. Por otro lado mi problema ahora es otro, veamos la imagen siguiente:



En la imagen se puede ver claramente la diferencia, y la única diferencia, digamos "física" del archivo es la codificación con la que fue guardado, en la imagen 1 (la de la separación y los link dentro del body) el archivo fue guardado con codificación UTF 8 y en la imagen 2, el mismo archivo, fue guardado en ANSI, ambos ejemplos con el Bloc de Notas de Windows .
El hecho es que el archivo de la imagen 2, es el que está correcto, ya que los link a los css se deberían imprimir en el head y no en el body.

Bien, por aquí dejo esta cuestión, espero que quienes estén interesados en aportar información sobre este curioso fallo, por favor responda.

Dejo el código del archivo en cuestión:

Código:
<?php
include ("../modulos/funciones.php");
// PARA PRUEBAS SIN MODIFICAR ORIGINAL
include('./modulos/miguel.php');
// seguridad
if(comprobarLog()) {
    $mostrarInfo = true;
} else {
    $mostrarInfo = false;
}
unset($_SESSION['irA']);
desplegarHead("miFiesta");
?>
<body>
<div id="wrapper">
    <div id="top">
    <a href="/" id="logo"></a>
    </div>
    <div id="cuerpo">
<?php
include("./modulos/fiestas.php");
include("../clases/cajas.php");
include("./modulos/funciones.php");
if($mostrarInfo) {
    menuFiesta('proveedor');
    $mostrarForm = false;
    $error = false;
    if(isset($_GET['comentar']) && $_GET['comentar']) {
        $propImagen = 'src="imagenes/mi_fiestalia/titulos/comentar.png" alt="Comentar" title="Comentar" style="margin-left: 190px;"';
        $mostrarForm = true;
    } else {
        if($_POST['sbt_guardar']) {
            if(!$_POST['hid_servicio'] || !$_POST['comentario']) {
                $propImagen = 'src="imagenes/mi_fiestalia/titulos/comentar.png" alt="Comentar" title="Comentar" style="margin-left: 190px;"';
                $mostrarForm = true;
                $error = true;
            }
        } else {
            $propImagen = 'src="imagenes/mi_fiestalia/titulos/mis_comentarios.png" alt="Mis Comentarios" title="Mis Comentarios"';
        }
    }
?>
        <div id="contenido">
            <h1><img <?php echo $propImagen; ?> /></h1>
            <div class="vinculos_proveedores <?php echo ($mostrarForm) ? 'vinc_comentarios' : ''; ?>">
                <ul>
                    <li><a href="proveedores/favoritos/">Mis proveedores favoritos</a></li>
                    <li><a href="proveedores/">Mis Proveedores</a></li>
                </ul>
            </div>
            <?php
            echo ($error) ? '<p class="msj_error"><strong>Error:</strong> Verifique los datos del formulario</p>' : '';
            if(!$mostrarForm) {
                if($_GET['idProveedor']) {
                    desplegarComentarios($_GET['idProveedor']);
                } else {
                    desplegarComentarios();
                }
            } else {
                if(!$_GET['idServicio'] && !$_POST['hid_servicio']) {
                    $_GET['idServicio'] = NULL;
                }
                $idProv = ($_POST['hid_proveedor'])?$_POST['hid_proveedor']:$_GET['idProveedor'];
                $idServ = ($_POST['hid_servicio'])?$_POST['hid_servicio']:$_GET['idServicio'];
                desplegarFormCom($_SESSION['idUser'],$idProv,$idServ,$error);
            }
            ?>
        </div>
<?php
} else {
    echo '<div id="contenido">';
    echo 'Sitio Restringido!';
    echo '</div>';
    header('Location: http://'.$_SERVER['SERVER_NAME'].'/loger/');
}
?>
    </div>
    <div id="pie">
        <div id="borde_inferior"></div>
    </div>
</div>

</body>
</html>