У меня странная проблема в IE. Это связано с тем, как IE определяет кодировку iframe на основе его родительского содержимого. Мое приложение упаковывает содержимое страницы в iframe и устанавливает кодировку родительского окна в UTF-8 через заголовок Content-Type. Содержимое iframe не устанавливает кодировку с помощью Content-Type и выбирает кодировку родительского окна при его начальной загрузке. Это желаемое поведение - окно контента требует кодировки UTF-8 для некоторого языкового контента, но по сложным причинам, не зависящим от меня, оно не может принудительно установить свою собственную кодировку, поэтому оно полагается на кодировку родительского окна.
Проблема возникает, когда страница содержимого является целью действия формы. Когда форма отправляется и страница загружается в окне содержимого, она автоматически выбирает западноевропейскую (Windows) кодировку. Кто-нибудь знает почему? Я пытался найти какую-либо документацию по связанному поведению, но Google, они ничего не делают. Любой вид лидерства (помимо отправки заголовка Content-Type или метки порядка байтов в содержимом) будет наиболее полезным.
К сожалению, у меня нет общедоступного места для размещения этого, но скопируйте эти примеры кода в локальные файлы и сохраните каждый с кодировкой UTF-8 без метка порядка байтов должна последовательно воспроизводить поведение во всех версиях 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>
Если вспомнить пример, если вы загружаете страницу и проверяете кодировку как родительского элемента, так и элемента iframe, вы должны увидеть «Auto-Select» и «UTF-8», выбранный в обоих. Если вы нажмете Отправить в iframe, фрейм перезагрузится и текст будет искажен. Проверка кодировки iframe должна по-прежнему показывать «Auto-Select» отмечен, но теперь вместо «UTF-8» будет выбран «Western European (Windows)». Мне нужно знать, могу ли я что-нибудь сделать, чтобы он автоматически сохранял кодировку UTF-8 после завершения действия формы.
Заранее спасибо!