我在IE中有一个奇怪的问题。它与IE如何根据其父内容检测iframe的编码有关。我的应用程序将页面内容包装在iframe中,并通过Content-Type标头将父窗口的编码设置为UTF-8。 iframe的内容不会通过Content-Type设置编码,而是在初始加载时选择父窗口的编码。这是所需的行为 - 内容窗口需要UTF-8编码用于某些语言内容,但由于我无法控制的复杂原因,它无法强制设置自己的编码,因此它依赖于父窗口的编码。
当内容页面是表单操作的目标时,会出现问题。当表单提交并在内容窗口中加载页面时,它会自动选择西欧(Windows)编码。有谁知道为什么?我曾尝试搜索有关相关行为的任何文档,但谷歌,他们什么都不做。任何类型的潜在客户(除了在内容中发送Content-Type标头或字节顺序标记)都将是最有帮助的。
遗憾的是,我没有公共场所来托管这个,但是将这些代码示例复制粘贴到本地文件并使用UTF-8编码保存每个文件而没有字节顺序标记应该在所有版本的IE中一致地重现行为。
frame1.html
< meta http-equiv =" Content-Type"含量=" text / html的;字符集= UTF-8英寸;>
< DIV>エンコード< / DIV>
< iframe src =" frame2.html">< / iframe>
frame2.html
<形式>
< input value ="エンコード">
< input type =" submit">
< /形式>
回顾一下这个例子,如果你加载页面并检查父和iframe的编码,你应该看到选中“自动选择”并选择“UTF-8”。如果您在iframe中点击提交,框架将重新加载,输入文本将出现乱码。检查iframe的编码仍应显示“自动选择”,但现在将选择“西欧(Windows)”而不是“UTF-8”。我需要知道在表单操作完成时是否还有其他任何操作可以使其自动保留UTF-8编码。
提前致谢!