Я хотел бы программно определить кодировку страницы через JavaScript или какой-либо другой API из браузера. Причина, по которой я хочу эту информацию, заключается в том, что я пытаюсь запутать основные браузеры, какие кодировки символов они поддерживают, и, очевидно, только потому, что я отправил соответствующий "Content-Type", это не значит, что браузер будет делать правильные действия с кодировкой, Любые другие возможные методы будут приветствоваться, но я бы предпочел не нажимать "Информация о странице" для более 50 кодировок символов.
Получить кодировку страницы /iframe через JavaScript
Ответ 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"
Таким образом, кажется, что для большинства целей вы можете положиться на эту информацию, исправив другой случай. В моем случае было полезно собрать эту информацию для отслеживания.