Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отобразить страницу с одной кодировкой на странице с другой кодировкой (https://javascript.ru/forum/misc/63374-otobrazit-stranicu-s-odnojj-kodirovkojj-na-stranice-s-drugojj-kodirovkojj.html)

MrBean 03.06.2016 15:33

Отобразить страницу с одной кодировкой на странице с другой кодировкой
 
Есть страница в кодировке utf-8. В теле страницы есть строка, содержащая страницу в другой заведомо неизвестной кодировке. Нужно как-то отобразить эту строку на странице. Пытался вставить эту строку в iframe, но он отображает строку в кодировке родительской страницы. При этом известно, если в iframe скормить страницу в неизвестной кодировке через src, проблем нет. Пример кода:
<!doctype html><html>
<head><meta charset="utf-8"></head>
<body>

	<p>Строка в кодировке utf-8.</p>
	<iframe width="600" height="300"></iframe>
	<script>

		var unknown_charset_page  = '<!doctype html><html><head><meta charset="windows-1251"></head><body><p>??? ??????windows-1251.</p></body></html>';

		document.querySelector('iframe').contentWindow.document.write(unknown_charset_page);

	</script>

</body>
</html>

laimas 03.06.2016 16:27

Цитата:

Сообщение от MrBean
В теле страницы есть строка, содержащая страницу в другой заведомо неизвестной кодировке.

Что такая проблема узнать кодировку и конвертировать ее в ту, с которой работает сайт?

MrBean 03.06.2016 16:57

Это абстрактная задача, хотелось бы найти решение именно в рамках этих условий.

laimas 03.06.2016 17:02

А при чем тут абстракция? Или же вместо того чтобы определить кодировку текста выгоднее граблями оперировать?

MrBean 03.06.2016 17:18

Нужен способ именно отобразить строку в документ с другой кодировкой без конвертаций.

laimas 03.06.2016 17:33

Цитата:

Сообщение от MrBean
ужен способ именно отобразить строку в документ с другой кодировкой

И как по вашему должен опознать такого "ерша" браузер, да и не обязательно он, любая программа отображающая текст? Что теги расставлять что вот тут utf, а с символа 261 начинает 1251?

В один поток нельзя.

PS. А вот в iframe, как другой документ, работать будет.

MrBean 03.06.2016 17:50

Может есть способ как-то обмануть браузер с чувством другого документа в iframe?

laimas 03.06.2016 18:49

А в фрейме и без обмана будет документ отображен в той кодировке, в которой указано.

MrBean 03.06.2016 19:12

Имелось ввиду, может есть способ динамически сформировать содержимое iframe и заставить браузер при этом думать, что в iframe другой документ, чтобы он отобразил его в оригинальной кодировке без кракозябр.

Deff 03.06.2016 22:38

Цитата:

Сообщение от MrBean
Нужен способ именно отобразить строку в документ с другой кодировкой без конвертаций.

Можно вставить собранный кусок нужного HTML в типовой документ в пустой фрейм, в хидере прописать нужную кодировку
<iframe name="IFRAME" width=100% height=300></iframe>

IFRAME.document.write(html)


Часовой пояс GMT +3, время: 07:54.