IE perd automatique de l'encodage UTF-8 dans un iframe forme cible
J'ai un étrange problème sous IE. Il a à voir avec la façon dont IE détecte l'encodage d'un iframe basé sur son contenu parent. Ma demande encapsule le contenu d'une page dans un iframe, et définit l'encodage de la fenêtre parent de l'UTF-8 par le biais de l'-tête Content-Type. Le contenu de l'iframe ne pas définir l'encodage par le Type de Contenu, et ramasse le parent de la fenêtre d'encodage sur sa charge initiale. C'est le comportement souhaité - la fenêtre de contenu nécessite le codage UTF-8 pour une langue de contenu, mais compliqué pour des raisons hors de mon contrôle, il ne peut pas la force de le définir son propre codage, de sorte qu'il s'appuie sur le parent de la fenêtre d'encodage.
Le problème se pose lorsque le contenu de la page est la cible d'une forme d'action. Lorsque le formulaire de demande et le chargement de la page dans la fenêtre de contenu, il s'auto-sélectionne de l'europe Occidentale (Windows) codage. Quelqu'un sait-il pourquoi? J'ai essayé de chercher toute sorte de documentation sur les comportements, mais les googles, ils ne font rien. Toute sorte de plomb (au-delà de l'envoi d'un en-tête Content-Type ou une marque d'ordre d'octet dans le contenu) serait le plus utile.
Malheureusement, je n'ai pas un lieu public à l'accueil de cette, mais le copier-coller ces exemples de code pour les fichiers locaux et l'enregistrement de chaque avec le codage UTF-8 sans une marque d'ordre d'octet doit systématiquement reproduire le comportement dans toutes les versions de IE.
frame1.html
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <div>エンコード</div> <iframe src="frame2.html"></iframe>
frame2.html
<form> <input value="エンコード"> <input type="submit"> </form>
Pour résumer, par exemple, si vous chargez la page et vérifier l'encodage de la société mère et à l'iframe, vous devriez voir "sélection Automatique" est cochée et "UTF-8" sélectionné à la fois. Si vous cliquez sur envoyer dans l'iframe, le cadre de rechargement et la saisie de texte sera déformé. La vérification de l'encodage de l'iframe devrait encore afficher "sélection Automatique" est cochée, mais maintenant "de l'europe Occidentale (Windows)" sera sélectionné au lieu de "UTF-8". J'ai besoin de savoir si il y a autre chose que je peux faire pour le faire automatiquement préserver l'encodage UTF-8 lors de l'action du formulaire est terminée.
Merci d'avance!
OriginalL'auteur korisu | 2010-07-07
Vous devez vous connecter pour publier un commentaire.
Quand vous dites que vous ne pouvez pas ajouter un en-tête Content-Type/BOM, êtes-vous en mesure d'ajouter le Type de Contenu comme une balise meta? Quelque chose comme:
Récemment, j'ai eu des questions semblables - c'est à dire la détection automatique de l'europe Occidentale en tout temps, sauf lorsqu'une fenêtre contextuelle de l'accès à la page, qui a ensuite causé à-dire à choisir UTF-8. Je n'ai jamais été en mesure de traquer exactement ce qu'il fait (la page de résultat est identique, seule la page que liés était différent!), nous avons donc fini de le fixer en forçant l'UTF-8, l'ensemble de l'application (avec les en-têtes).
Si vous êtes vraiment impossible de modifier l'intérieur de la page en quelque sorte, est-il possible vous pourrait "remplacer" cette page avec vos propres, et ensuite envoyer le contenu à "l'autre" serveur via une API ou HTTP POST où vous n'auriez pas besoin de s'inquiéter à propos d'IE "détection automatique"?
OriginalL'auteur Danny Tuppeny