Кодировки символов в HTML


В то время как язык гипертекстовой разметки ( HTML ) используется с 1991 года, HTML 4.0 от декабря 1997 года был первой стандартизированной версией, в которой международные символы были достаточно полно обработаны. Когда HTML-документ включает специальные символы, не входящие в семибитный код ASCII , следует учитывать две цели: целостность информации и универсальное отображение в браузере .

Во-первых, веб-сервер может включить кодировку символов или " charset" в заголовок протокола передачи гипертекста (HTTP) Content-Type, который обычно выглядит следующим образом: [1]

Этот метод дает HTTP-серверу удобный способ изменить кодировку документа в соответствии с согласованием содержимого ; это может сделать определенное программное обеспечение HTTP-сервера, например Apache с модулем mod_charset_lite . [2]

Для HTML эту информацию можно включить в headэлемент в верхней части документа: [3]

Документы XHTML имеют третий вариант: выразить кодировку символов через объявление XML следующим образом: [4]

При втором подходе, поскольку кодировка символов не может быть известна до тех пор, пока объявление не будет проанализировано, возникает проблема с знанием того, какая кодировка символов используется в документе вплоть до самого объявления включительно. Если кодировка символов является расширением ASCII, то содержимое до самого объявления включительно должно быть чистым ASCII, и это будет работать правильно. Для кодировок символов, не являющихся расширениями ASCII (т. е. не надмножеством ASCII), таких как UTF-16BE и UTF-16LE , обработчик HTML, например веб-браузер, должен в некоторых случаях анализировать объявление с помощью использование эвристики.