Заставить браузер отображать ISO-8859-1 без интерпретации как Windows-1252

Исторически сложилось так, что многие веб-страницы рекламируют себя как находящиеся в ISO-8859-1 (Latin-1) кодировка фактически содержала контент в Windows-1252 кодировка (которая является строгим надмножеством Latin-1).

Этого было достаточно, чтобы браузеры обновили свое поведение, чтобы обрабатывать весь текст Latin-1, как если бы это был Windows-1252. Затем такое поведение было рационализировано в Стандарт HTML5 [черновик].

Я пишу набор страниц, на которых хочу показать разницу между двумя кодировками, однако это кажется невозможным, потому что моя страница Latin-1 никогда не обрабатывается как Latin-1. Есть ли способ в каком-либо браузере заставить меня соблюдать кодировку страницы и отображать демонстрацию?


person Gareth    schedule 07.11.2012    source источник


Ответы (1)


Боюсь, прямого пути нет. Я думал, что у Opera когда-то была опция для этого, и в ее текущей версии есть опция (через opera: config) для принудительной кодировки, переопределения заголовков HTTP и всего остального, но даже там iso-8859-1 на самом деле означает windows-1252. Проверял и Opera версий 5 и 9, безуспешно.

Но используя текущую версию Opera (12.02), вы можете установить кодировку через View → Encoding, а в наборе «Western» (где iso-8859-1 означает windows-1252, как обычно), выбор iso-8859-15 вызывает диапазон 130–159 (десятичных) байтов, которые эффективно игнорируются при отображении, не отображается в соответствии с windows-1252. Таким образом, это более или менее означает обработку данных как истинно iso-8859-1 - за исключением, конечно, того, что несколько графических символов, где iso-8859-1 и iso-8859-15 различаются, используется последний.

Технически эти байты представляют собой элементы управления C1 в ISO-8859-1, и в режиме, описанном выше, Opera фактически обрабатывает их таким образом. Они запрещены в HTML, но обычно просто игнорируются браузерами.

person Jukka K. Korpela    schedule 08.11.2012