Foros del Web » Creando para Internet » HTML »

codificacion en iframe

Estas en el tema de codificacion en iframe en el foro de HTML en Foros del Web. Hola amigos. Tengo una pagina con un iframe. En la pagina, codifico con utf8 y en el iframe, cargo otra pagina codificada con ISO-8859-1. Esta ...
  #1 (permalink)  
Antiguo 20/01/2012, 06:54
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
codificacion en iframe

Hola amigos.

Tengo una pagina con un iframe.

En la pagina, codifico con utf8 y en el iframe, cargo otra pagina codificada con ISO-8859-1. Esta página que cargo no puedo modificarla de ninguna manera.

El problema es evidente, lo que me muestra bien en mi pagina, me lo muestra mal en el iframe y viceversa.

La pregunta es: Puedo aplicarle codificación utf8 al iframe, dado que la pagina que cargo en el iframe no puedo codificarla y biene con ISO-8859-1?.

A ver que me podeis contar.

Gracias por vuestra ayuda. Un saludo.
  #2 (permalink)  
Antiguo 20/01/2012, 15:44
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: codificacion en iframe

No tendria por que afectar la codificación de lo que cargas en el iframe

guardá este archivo como utf-8

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7. <p>Página principal en UTF-8, el contenido del iframe, iso</p>
  8. <iframe src="http://www.desarrolloweb.com/articulos/1006.php" width="600" height="600"></iframe>
  9. </body>
  10. </html>

si vas a la url
http://www.desarrolloweb.com/articulos/1006.php
vas a ver que está en iso-8859 y se visualiza correctamente.

Deberías asegurarte que la codificación de la url que querés cargar no tenga errores por si misma

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 23/01/2012, 03:01
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: codificacion en iframe

Hola emprear. Gracias por tu respuesta. He estado haciendo pruebas con respecto a tus comentarios, y efectivamente, tienes razón.

Lo he estado aplicando a mi sitio y despues de ir desgranando muchas posibilidades, el problema sigue persistiendo.

La conclusión a la que he llegado es que, el motivo de mostrarme mal la codificación, es que los archivos no los cargo en el iframe desde el servidor, es decir, tengo modificado apache para que me cargue los archivos de una unidad de red, y esta es la única posibilidades que me ha quedado, puesto que cargando el archivo desde el servidor, funciona correcto.

Este es el codigo que uso para cargar el iframe:

<iframe src="<?php echo $_SESSION['localhost'].'g/ruta/depart.htm';?>">
</iframe>

Donde $_SESSION['localhost'] es una variable de sesion con la ruta del servidor, g/ es la modificación de apache para apuntar a la unidad de red, ruta es la ruta dentro de esa unidad de red y depart.htm es el archivo en cuestion.

el archivo depart.htm por sí solo, sin cargar en el iframe, no tiene codificación. Si le pongo utf-8, muestra mal los datos, si le pongo iso-8859-1, los muestra bien si lo dejo como está, es decir, sin nada, lo muestra bien.

Si lo cargo en el iframe, como la pagina padre que contiene el iframe tiene utf-8, se ven mal los datos. Es decir, sea aplica correctamente lo que tu has explicado, pero, si en vez de carga el archivo desde su ubicacion original, es decir, desde la unidad de red, lo cargo desde el servidor, aunque el documento padre tenga utf8, se muestran bien los datos.

De esta forma, he llegado a la conclusión antes mencionada.

No se si tienes que decir algo al respecto.

un saludo.
  #4 (permalink)  
Antiguo 23/01/2012, 04:02
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: codificacion en iframe

@AitorLopez

Varias cosas, en primer lugar que además del tema de la codificación, lo que mostras se vincula a algo que tratamos en otro post respecto de utilizar carpetas de red para crear alias o utilizarlos como documentRoot de virtuahosts.
Vamos primero con lo de la codificación, cuando hablamos de codificación nos referimos a dos cosas puntualmente, a la codificación que utilizó nuestro editor de texto para guardar el archivo y a la instrucción que le das al navegador para que reconozca que codificación usaste (ya sea via un meta ó un header), ambas deben "coincidir" por supuesto.
nigún archivo "no tiene codificación", todos la tienen.
Te recomiendo la lectura de
http://foros.emprear.com/codificar

Insisto, el charset de la página que contiene el iframe no tiene porque afectar la visualización del archivo cargado en el iframe si este, como se desprende de lo anterior, tiene coincidentes el charset y la codificación con que se guardó en el editor de texto.

Pero aqui se presenta otro problema, lo que cargas en tu iframe.
está todo dentro del mismo dominio? si es así, que significa
Cita:
si en vez de carga el archivo desde su ubicacion original, es decir, desde la unidad de red, lo cargo desde el servidor
Se supone que siempre lo vas a cagar desde el servidor y a través del navegador, no entiendo esa diferencia.

Por lo que decís intuyo (no lo puedo afirmar) que estás guardando los archivos como utf-8 en el editor y que tu servidor está pasando por defecto un header iso-8859-1

Si querés usar utf-8, lee el articulo que te mencioné, y agregá en la raiz de tu domicio, en el .htaccess

AddDefaultCharset utf-8

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 24/01/2012 a las 20:06 Razón: gramática y ortografía
  #5 (permalink)  
Antiguo 23/01/2012, 05:55
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: codificacion en iframe

Hola. Todos los archivos los cargo desde el servidor, pero hay varios que tengo que cargar desde unidades de red, que son los que cargo en el iframe.

Por defecto, uso la codificacion utf-8 en todos los archivos, tanto los que creo, como en lo que le indico en el html y en el php.

El problema es los archivos que cargo desde las unidades de red, que no puedo modificarlos.

Esto archivos, como te decía, si me los paso al servidor, me los muestra perfectos, pero si los cargo desde las unidades de red, es cuando me muestra mal los caracteres con tíldes, etc. (por eso comenté lo de las unidades de red).

He puesto en el .htaccess lo que has indicado, pero tampoco funciona.

Resumiendo, todo lo que has indicado funciona tal y como tu dices, a excepción de las cargas de archivos desde unidades de red, que es cuando funciona mal.

Un saludo.
  #6 (permalink)  
Antiguo 23/01/2012, 06:29
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: codificacion en iframe

Mirá. como prueba final, cree una carpeta compartida en la red y le asigné un alias en httpd.conf

Está en mi servidor local el cual dejó funcionando para que verifiques

la url es

http://emprear.dyndns.info/red

la configuración es

Código Apache:
Ver original
  1. Alias "/red" "//KIO11-PC/web"
  2.     <Directory "//KIO11-PC/web">
  3.     AllowOverride All
  4.     DirectoryIndex index.php
  5.     Options +indexes
  6.     Order deny,allow
  7.     allow from all
  8. </Directory>

y el .htaccess

Código Apache:
Ver original
  1. addCharset utf-8 .txt
todo se vé correctamente

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 23/01/2012, 07:54
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: codificacion en iframe

Si, pero no entiendo lo que me has querido explicar ahora o yo no me he explicado bien antes.

Lo que cargo en el iframe son archivos htm que estan en una carpeta de red.

Si ese htm lo copio y lo pego en el servidor y cargo esa copia del servidor, se ve correctamente. Si cargo el htm que tengo en la carpeta de red, la codificación se ve mal.
  #8 (permalink)  
Antiguo 23/01/2012, 10:08
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: codificacion en iframe

Cita:
Iniciado por AitorLopez Ver Mensaje
Si, ...
Lo que cargo en el iframe son archivos htm que estan en una carpeta de red.

Si ese htm lo copio y lo pego en el servidor y cargo esa copia del servidor, se ve correctamente. Si cargo el htm que tengo en la carpeta de red, la codificación se ve mal.
Ese es el punto, supuestamente todo corre bajo tu servidor. Que los archivos estén en
c:/www (máquina que corre el Apache" ó en //PC4/web/ (recurso compartido de red en otra PC), no hace diferencia, una vez que Apache los sirve al navegador, siempre están en tu "Servidor"
Una última prueba que podés hacer es verificar los headers para cada página. Para eso tenés que valerte de alguna herramienta, Yo uso Firefox más la extensión Webdeveloper, ejemplo, abrís el index que contiene el iframe, click drecho información de página



luego la Herramienta, Click derecho/webdeveloper/información/ver encabezados de página



Fijate que todo coincida, y hacé los mismo para el archivo que carga en el iframe

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 24/01/2012, 02:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: codificacion en iframe

Hola. He hecho las pruebas que me indicabas y el resultado es:

La pagina original donde cargo el iframe:

INFORMACION DE LA PAGINA:

Codificacion: UTF-8

INFORMACION WEB DEVELOPER:

Date: Tue, 24 Jan 2012 08:04:28 GMT
Server: Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By: PHP/5.3.8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8

200 OK

La pagina que cargo en el Iframe:

INFORMACION DE LA PAGINA

Codificacion: ISO-8859-1

INFORMACION WEBDEVELOPER:

Content-Length: 23909
Content-Type: text/html
Last-Modified: Tue, 03 Jun 2008 11:04:32 GMT
Accept-Ranges: bytes
Etag: "6a5a209a69c5c81:685"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Tue, 24 Jan 2012 07:59:29 GMT

200 OK

Como puedes ver, en la pagina que va dentro del iframe, no hay codificacion, o yo no la veo.
  #10 (permalink)  
Antiguo 24/01/2012, 06:45
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: codificacion en iframe

@Aitor
ahora me desconcertaste del todo, vos indicaste en su momento

Cita:
Este es el codigo que uso para cargar el iframe:

<iframe src="<?php echo $_SESSION['localhost'].'g/ruta/depart.htm';?>">
</iframe>

Donde $_SESSION['localhost'] es una variable de sesion con la ruta del servidor, g/ es la modificación de apache para apuntar a la unidad de red, ruta es la ruta dentro de esa unidad de red y depart.htm es el archivo en cuestion.
Pero según los encabezados de la página cargada en el iframe, vos NO estas cargando un archvio desde una unidad de Red, el cual Procesa Apache.
Lo estás cargando desde otro servidor/dominio (no importa que este otro servidor esté en otra máquina de tu misma red, ni que hayas hecho los alias en Apache)

Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET


Y es ahi donde parece estar el problema, hay discrepancias entre como fue guardada la página y los headers, o el charset que tiene el documento, u ambos.
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #11 (permalink)  
Antiguo 24/01/2012, 08:52
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: codificacion en iframe

Hola.

Efectivamente, el archivo esta en una unidad de red en otro servidor, pensé que se daría por hecho que la unidad de red estaría en un servidor, perdon por suponer tanto.

Dicho esto, lo del tema de las unidades de red lo indiqué para explicar el porque de la ruta del iframe, pero tampoco lo consideré relevante, simplemente era por dar informacion.

En cualquier caso, ves alguna posible solución.

Gracias y perdona la confusión.

Un saludo.
  #12 (permalink)  
Antiguo 24/01/2012, 09:03
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: codificacion en iframe

Supongamos que tu servidor esta en localhost, perfecto, ahora sin importar en que lugar de tu red este el archivo que carga el iframe, deberias llamarlo

<iframe src="http://dominio.xxx/depart.htm"></iframe>
siendo dominio.xxx el serverName provisto por el IIS, de no tener asignado ninguno (o ser simplemente localhost para esa misma pc) deberías poner

<iframe src="http://192.168.1.20/depart.htm"></iframe>
ó el numero y rutas que le correspondan, pregunto
como se traduce en la slida html esto
<iframe src="<?php echo $_SESSION['localhost'].'g/ruta/depart.htm';?>">
</iframe>

solución, creo que cualquiera posible debe realizarse haciendo modificaciones en la máquina que tiene corriendo el IIS, aunque ya señalaste
Cita:
Esta página que cargo no puedo modificarla de ninguna manera.
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: codificacion, iframe
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 20:09.