Подтвердить что ты не робот

Получить кодировку страницы /iframe через JavaScript

Я хотел бы программно определить кодировку страницы через JavaScript или какой-либо другой API из браузера. Причина, по которой я хочу эту информацию, заключается в том, что я пытаюсь запутать основные браузеры, какие кодировки символов они поддерживают, и, очевидно, только потому, что я отправил соответствующий "Content-Type", это не значит, что браузер будет делать правильные действия с кодировкой, Любые другие возможные методы будут приветствоваться, но я бы предпочел не нажимать "Информация о странице" для более 50 кодировок символов.

4b9b3361

Ответ 1

Javascript может только сообщать о некоторых вещах, которые происходят. Большинство браузеров не предоставят вам достаточно полезных настроек, чтобы вы могли основывать тесты на хардкор.

Есть такие вещи, как document.inputEncoding, document.characterSet (не IE), document.charset и document.defaultCharset (IE), которые могут помочь вам в этом. Но они могут быть столь же шелушатся, как и фактическая поддержка. То есть, если браузер "думает", он поддерживает кодировку, но на самом деле этого не делает, разве это не то, что вы хотите знать?

Я считаю, что лучше всего настроить динамическую тестовую страницу с некоторыми довольно сложными символами на ней (или действительно большим набором тестов), загрузить тест в браузере, сообщить браузеру о строке браузера, настройках кодировки, исходный запрос кодирования и содержимое testElement.innerHTML, которое затем можно проверить на ожидаемые результаты.

Ответ 2

Оригинальный ответ довольно старый, и поддержка document.characterSet значительно улучшилась.

>>> document.characterSet

IE 11:

"utf-8"

Firefox 52, Chrome 55 и Chrome на Android, Safari 10:

"utf-8"

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