- •3.1 Введение в sgml
- •3.2 Конструкции sgml используемые в html
- •3.2.1 Элементы
- •3.2.2 Атрибуты
- •3.2.3 Указатели символов
- •3.2.4 Коментарии
- •3.3 Как читать dtd для html
- •3.3.1 Коментарии в dtd
- •3.3.2 Определения параметрических сущностей
- •3.3.3 Объявления элементов
- •Определения модели содержания
- •3.3.4 Объявления атрибутов
- •Сущности dtd в определениях атрибутов
- •Булевы атрибуты
- •4 Согласования: требования и рекомендации
- •4.1 Определения
- •4.3 Тип содержания "text/html"
- •5 Представление документа html
- •5.1 Набор символов документа
- •5.2 Символьные кодировки
- •5.2.1 Выбор кодировки
- •Примечание о специфических кодировках
- •5.2.2 Указание символьной кодировки
- •5.3 Символьные ссылки
- •5.3.1 Числовые символьные ссылки
- •5.3.2 Символьные сущностные ссылки
- •5.4 Неотображаемые символы
- •6 Основные типы данных html
- •6.1 Информация о регистре
- •6.2 Основные типы sgml
- •6.3 Текстовые строки
- •6.5 Цвета
- •6.5.1 Примечание об использовании цветов.
- •6.6 Длины
- •6.7 Типы содержания (типы mime)
- •6.8 Языковые коды
- •6.9 Символьные кодировки
- •6.10 Одиночные символы
- •6.11 Дата и Время
- •6.12 Типы связей
- •6.13 Описатели среды
- •6.14 Данные сценариев
- •6.15 Данные таблиц стилей
- •6.16 Фреймовые целевые имена
5.2 Символьные кодировки
То, что в данной спецификации называется "символьные кодировки" известно в других спецификациях под другими именами (это может стать причиной некоторой путаницы). Однако данная концепция в значительной степени типична для Интернет в целом. Таким же образом, заголовки протоколов, атрибутов и параметров ссылаются на символьные кодировки, имеющие то же самое имя -- "charset" -- и используют такие же значения из реестра [IANA] (смотрите полный список в [CHARSETS]).
Параметр "charset" определяет "символьную кодировку", которая является методом конвертирования последовательности байт в последовательность символов. Эта конверсия естественным образом подходит к схеме активности Сети: серверы посылают документы HTML средствам просмотра в виде потока байт; средства просмотра интерпретирует их как последовательность символов. Метод конверсии может простираться от простого соответствия "один к одному" до комплексного переключения схем или алгоритмов.
Простая технология кодирования "один байт -- один символ" не достаточна для текстовых строк относительно символьного репертуара описанного в [ISO10646]. Имеется несколько различных кодировок, являющихся частью [ISO10646] в дополнении к кодировкам вхождений набора символов (таких как UCS-4).
5.2.1 Выбор кодировки
Авторские инструменты (например, текстовые процессоры) могут кодировать документы HTML в символьных кодировках по их выбору, и выбор, в значительной степени, зависит от соглашений, используемых системным программным обеспечением. Эти инструменты могут применяться в любых удобных кодировках, которые "перекрывают" большинство символов, содержащихся в документе, предусмотренные кодировки корректно отмечены. Случайные символы, которые выпадают из конкретной кодировки, все равно могут быть представлены символьными ссылками. Последние всегда ссылаются на алфавит документа, а не на символьную кодировку.
Cерверы и прокси- серверы могут изменять кодировку документа на лету (это называется перекодировкой), встречая запросы от средств просмотра (смотрите раздел 14.2 в [RFC2068], заголовок "Accept-Charset" запроса HTTP). Серверы и прокси- серверы не будут полезны для документа созданного в символьной кодировке, которая перекрывает весь алфавит документа.
Обычно используемые символьные кодировки в Web включают: ISO-8859-1 (также называемую "Latin-1", применяется для большинства Западно-Европейских языков), ISO-8859-5 (Кириллица), SHIFT_JIS (Японская кодировка), EUC-JP (другая Японская кодировка) и UTF-8 (кодировка ISO 10646, использующая различные номера байт для представления различных символов). Имена кодировок являются нечувствительными к регистру, таким образом, "SHIFT_JIS", "Shift_JIS" и "shift_jis" полностью эквивалентные записи.
Данная спецификация не предписывает, какие кодировки должны поддерживаться средством просмотра.
Согласующиеся средства просмотра должны корректно отображать в Unicode все символы в любой символьной кодировке, которые они (средства) распознают (или должны вести себя так, как будто они их распознают).