2010-11-24 17 views
1

Je suis en train de concevoir un site web qui s'appuiera sur iFrames pour montrer le contenu de tiers. Compte tenu de cela, j'ai deux problèmes.iFrames et encodages

  1. Ce contenu tiers peut provenir de codages différents.
  2. Presque personne ne définit l'encodage d'un fichier html.

Ok, dans ce cas, le navigateur va essayer de infeer l'encodage, mais comme mes tests le montre ne le ferai pas infeer le codage de chaque iframe sepparatly et, par conséquent, certains iframe aura le contenu d'une manière foiré.

Pour reproduire créer les fichiers suivants:

index.html (codé utf-8)

<html> 
    <iframe src="utf.html"> </iframe> 
    ááá 
    <br /> 
    <iframe src="iso.html"> </iframe> 
</html> 

utf.html (UTF-8)

<html> 
    ááááéééé 
</html> 

iso.html (codé ISO-8859-1)

<html> 
    ááééíí 
</html> 

Droite. Si vous voyez les résultats ne seront pas parfaits.

Si j'ajoute correctement les informations d'encodage dans la méta-balise, cela fonctionnera. N'oubliez pas que je ne peux pas modifier le contenu d'un tiers. Donc, longue histoire en bref, la question est. Dans mon exemple, existe-t-il un moyen de faire en sorte que tous les caractères soient correctement édités, uniquement index.html?

Merci

+0

plus probablement vous aurez besoin d'analyser le contenu avec n'importe quel langage côté serveur pour le faire. – yoda

Répondre

2

Il n'y a pas une façon de faire de ce côté-client. Le navigateur va bloquer cela à cause des politiques de sécurité inter-domaines. Vous aurez besoin de proxy les pages à travers votre serveur et modifier la sortie.

+0

Ou bien, placez simplement le jeu de caractères dans l'en-tête HTTP de la réponse, au lieu de modifier le contenu. –