Foros del Web » Programando para Internet » PHP »

Perdida de codificación UTF-8 en IFRAME

Estas en el tema de Perdida de codificación UTF-8 en IFRAME en el foro de PHP en Foros del Web. Saludos. Busque solución a mi problema, pero no la encontre. Resulta que tengo unos reportes en PHP y Mysql, que los estoy mostrando en un ...
  #1 (permalink)  
Antiguo 18/10/2011, 07:49
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 14 años, 5 meses
Puntos: 1
Perdida de codificación UTF-8 en IFRAME

Saludos.
Busque solución a mi problema, pero no la encontre.
Resulta que tengo unos reportes en PHP y Mysql, que los estoy mostrando en un sistema web, como una página embebida, dentro de un IFRAME.
Tanto la página como el reporte, se visualizan perfectamente en una pagina o pestaña individual. Mejor dicho el reporte se visualiza bien en una ventana individual, pq el sistema web no da problemas. Todo esta seteado con UTF-8
El problema aparece cuando al reporte lo muestro en el IFRAME de la página del sistema WEB. Ya que al parecer pierde la codificacion y los acentos y ñ, no se muestran y en vez aparacen simbolos.

Para muestra:
Así es como se ve en el IFRAME.



Y asi se ve en una ventana o pestaña individual. Que es como deveria verse en el IFRAME:



Lo grave de todo, es que los filtros que tienen los reportes, no funcionan dentro del iframe, ya que no coinciden los simbolos.

Cualquier sugerencia es bienvenida, bye!!
  #2 (permalink)  
Antiguo 18/10/2011, 09:21
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Perdida de codificación UTF-8 en IFRAME

el html del iframe debe tener su propio charset
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 18/10/2011, 12:38
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Perdida de codificación UTF-8 en IFRAME

un iframe muestra una pagina independiente, no es raro que en un iframe pierdas la codificación, el css, las funciones o variable js, el formato de la pagina, scroll, rutas, etc.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 18/10/2011, 14:12
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Perdida de codificación UTF-8 en IFRAME

No pierdo nada del la página original del reporte, excepto la codificación. Mantiene el CSS y las funciones JS.
Existirá una manera de forzar, la codificaación que se muestra en el IFRAME. por que como explique, el reporte tiene la codificación adecuada, y en una ventana individual se muestra sin ningun problema. Lo que no puedo lograr es que en el IFRAME, se muestre bien.
  #5 (permalink)  
Antiguo 18/10/2011, 14:23
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Perdida de codificación UTF-8 en IFRAME

y no puedes modificar el contenido del iframe?

solo tendrías que agregar la codificación ahí, como dijo maycolalvarez.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #6 (permalink)  
Antiguo 18/10/2011, 19:24
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Perdida de codificación UTF-8 en IFRAME

Si el contenido del IFRAME, es decir el HTML del reporte tiene su codificación y charset, seteado al igual que todo el sistema:

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<title>Reporte</title>
	<link rel="shortcut icon" href="http:../../favicon.ico" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
y es por ello que se muestra perfectamente cuando no esta en el IFRAME...

  #7 (permalink)  
Antiguo 18/10/2011, 21:58
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Perdida de codificación UTF-8 en IFRAME

en serio esta bien raro tu caso... podrías publicar el código donde pones el iframe? la verdad es que no se me ocurre mucho pero no me rindo tan fácilmente.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #8 (permalink)  
Antiguo 19/10/2011, 07:27
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Perdida de codificación UTF-8 en IFRAME

Ok...ojala puedan ayudarme, que ya he intentado de todo, y la verdad es q no veo por donde más hacer algo.
En el DIV "contenido", están los IFRAME..!!
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>

        <link rel="stylesheet" href="css/style.css"/>
        <link rel="shortcut icon" href="http:favicon.ico" />
        <script language="javascript" type="text/javascript" src="/avenatop/Scripts/javascript.js"></script>
        <script src="/avenatop/Scripts/swfobject_modified.js" type="text/javascript"></script>
        <title>Recepción de Granos</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    </head>

    <body>
        <div class="wrap">

            <div class="contenedor">
                <div class="header">
                    <div id="logo">
                        <object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="292" height="116">
                            <param name="movie" value="/avenatop/img/lgbrillo.swf" />
                            <param name="quality" value="high" />
                            <param name="wmode" value="transparent" />
                            <param name="swfversion" value="6.0.65.0" />
                            <!-- Esta etiqueta param indica a los usuarios de Flash Player 6.0 r65 o posterior que descarguen la versión más reciente de Flash Player. Elimínela si no desea que los usuarios vean el mensaje. -->
                            <param name="expressinstall" value="/avenatop/Scripts/expressInstall.swf" />
                            <!-- La siguiente etiqueta object es para navegadores distintos de IE. Ocúltela a IE mediante IECC. -->
                            <!--[if !IE]>-->
                            <object type="application/x-shockwave-flash" data="/avenatop/img/lgbrillo.swf" width="292" height="116">
                                <!--<![endif]-->
                                <param name="quality" value="high" />
                                <param name="wmode" value="transparent" />
                                <param name="swfversion" value="6.0.65.0" />
                                <param name="expressinstall" value="/avenatop/Scripts/expressInstall.swf" />
                                <!-- El navegador muestra el siguiente contenido alternativo para usuarios con Flash Player 6.0 o versiones anteriores. -->
                                <div>
                                    <h4>El contenido de esta página requiere una versión más reciente de Adobe Flash Player.</h4>
                                    <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtener Adobe Flash Player" width="112" height="33" /></a></p>
                                </div>
                                <!--[if !IE]>-->
                            </object>
                            <!--<![endif]-->
                        </object>
                    </div>
                    <div id="head"><div id="head" ><script language="javaScript">showImage();</script></div></div>
                </div><!--header-->

                <div class="userbar">
                    <table border="0" height="25"><tr><td id="user">Bienvenido: <a class="auser" href="/avenatop/perfil.php"><?php echo $_SESSION['nombre']; ?></a></td><td id="sesion"><a class="asesion" href="logout.php">Cerrar Sesión</a></td></tr></table></div>

                <div class="colmenu">

                    <lu>
                        <a id="amenu" href="main.php">
                            <div id="linea">
                                <li class="menu"><span class="menu">Estado de cultivo</span></li>
                            </div>
                        </a>


                        <div id="linea">
                            <li class="menuactual"><span class="menuactual">Recepción de Granos</span></li>
                        </div>

                        <?php if(($_SESSION['nivel']==1) or ($_SESSION['nivel']==3)) {
                            echo '
                    <a  id="amenu" href="reporteespecifico.php">
                    <div id="linea">
                    <li class="submenu"><span class="submenu">Reportes Específicos</span></li>
                    </div>
					</a> ';
                        }?>

                        <a id="amenu" href="reportedinamico.php">
                            <div id="linea">
                                <li class="submenu"><span class="submenuactual">Reportes Dinámicos</span></li>
                            </div>
                        </a>
                        <?php if(($_SESSION['nivel']==1) or ($_SESSION['nivel']==3)) {
                            echo '
					<a id="amenu" href="reportedinamicoHis.php">
                    <div id="linea">
                    <li class="submenu"><span class="submenu">Reportes Históricos</span></li>
                    </div>
					</a>';
                        } ?>

                        <a id="amenu" href="consultasliquidacion.php">
                            <div id="linea">
                                <li class="menu"><span class="menu">Liquidación</span></li>
                            </div>
                        </a>
                        <?php if(($_SESSION['nivel']==3)) {  ?>

                        <a id="amenu" href="ingresarag.php">
                            <div id="linea">
                                <li class="menu"><span class="menu">Administración de Usuarios</span></li>
                            </div>
                        </a>
                            <?php } ?>
                    </lu>

                </div>
                <div class="contenido">
                    <?php if(($_SESSION['nivel']==1) or ($_SESSION['nivel']==3)) { ?>

                    <iframe src="selecciondinamica.php"></iframe>

                        <?php	}elseif(($_SESSION['nivel']==2)) {  ?>
                    <iframe src="selecciondinamicaag.php"></iframe>
                        <?php } ?>
                </div>

            </div><!--contenedor-->
        </div><!--wrap-->

    </body>
</html> 


Salu2!!!
  #9 (permalink)  
Antiguo 19/10/2011, 08:23
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Perdida de codificación UTF-8 en IFRAME

ok, probemos 2 cosas (en este mismo orden), si no funciona una sigue con la siguiente XD

1.- Cambia el contenido del iframe (o sea selecciondinamica.php), al principio agrega esto
Código HTML:
Ver original
  1. <?php header('Content-Type: text/html; charset=utf-8'); ?>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3.  
  4.     <title>Reporte</title>
  5. ....

2.- Guarda el archivo contenido del iframe (selecciondinamica.php) como utf-8 sin BOM usando notepad++

3.- Crea o edita el archivo .htaccess agregando la siguiente linea:
AddDefaultCharset UTF-8

Si no puedes crear o modificar el archivo .htaccess y tienes acceso al servidor, puedes modificar la configuracion del apache agregando la misma linea:
AddDefaultCharset UTF-8

si nada de esto sirve no creo poder ayudarte =(
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #10 (permalink)  
Antiguo 20/10/2011, 15:22
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Perdida de codificación UTF-8 en IFRAME


Paso 1 no funciono...:(
Paso 2 ya lo habia hecho, pero no manejo el concepto de BOM, pero creo q no lo uso.
Paso 3, tampoco funciono....

Muchas gracias por las sugerencias stramin!

No logro identificar que es lo que hace q pierda codificación en el iframe...
Help plis!

Última edición por n_n; 20/10/2011 a las 15:26 Razón: ortografía

Etiquetas: iframe, mysql, perdida, utf-8
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 18:46.