На главную
В этой главе обсуждается, как документы в формате HTML представляются
на компьютере и в Интернет.
Раздел
набор символов документа относится к вопросу об абстрактных
символах, которые могут входить в состав документа в формате HTML.
В число этих символов входят латинская буква "A", кириллическая буква
"I", китайский иероглиф "вода" и т.д.
Раздел
кодировки символов относится к вопросу о том, как эти символы могут
быть представлены в файле или во время передачи по Интернет.
Поскольку некоторые кодировки могут прямо не представлять все символы,
которые автор захочет включить в документ, HTML предлагает другие
механизмы, называемые
ссылками на символы, для ссылки на любой символ.
Поскольку в человеческих языках имеется огромное количество символов
и множество способов их представления, следует позаботиться о том, чтобы
эти документы могли понимать агенты пользователей во всем мире.
Для обеспечения возможность взаимодействия сетей SGML требует от
каждого приложения (включая HTML) указания
набора символов документа.
Документ включает:
-
Репертуар: Набор
абстрактных
символов,, таких как латинская
буква "A", кириллическая буква "I", китайский иероглиф "вода" и т.д.
-
Коды: Набор
целочисленных ссылок на символы репертуара.
Каждый документ SGML (включая каждый документ HTML) - это
последовательность символов из репертуара. Компьютерные системы
идентифицируют каждый символ по его коду; например, в наборе символов
ASCII коды 65, 66 и 67 означают символы 'A', 'B' и 'C' соответственно.
Набора символов ASCII недостаточно для такой глобальной
информационной системы, как Web, поэтому HTML использует более полный
набор символов, называемый
Универсальным набором символов (Universal
Character Set - UCS), и определенный в
[ISO10646]. Этот стандарт определяет репертуар тысяч
символов, используемых во всем мире.
Набор символов, определенный в
[ISO10646] - это посимвольный
эквивалент Unicode 2.0
([UNICODE]).
Оба эти стандарта время от времени обновляются, пополняются новыми
символами, об изменениях следует узнавать на соответствующих серверах
Web. В этой спецификации ISO/IEC-10646 или Unicode означают этот самый
набор символов. Однако в спецификации HTML Unicode также упоминается при
обсуждении других вопросов, таких как
алгоритм двунаправленного текста.
Набора символов документа, однако, недостаточно, чтобы агенты
пользователей могли корректно интерпретировать документы HTML при
типичном обмене - закодированные как последовательность байт в файле или
во время передачи по сети. Агенты пользователя должны также знать
кодировки символов, которые использовались для преобразования потока
символов документа в поток байт.
Кодировки символов
в этой спецификации имеют другие названия в других спецификациях (что
может вызвать некоторую путаницу). Однако это понятие в Интернет
означает примерно одно и то же. Одно и то же имя -- "charset - набор
символов" - используется в заголовках протоколов, атрибутах и
параметрах, ссылающихся на символы и использующих одни и те же значения
из
[IANA] реестра (полный список см. в разделе
[CHARSETS]).
Параметр "charset" идентифицирует кодировку символов, которая
является способом преобразования последовательности байт в
последовательность символов. Это преобразование естественно вписывается
в схему деятельности Web: серверы отправляют документы HTML агентам
пользователей в виде потока байт; агенты пользователей интерпретируют их
как последовательность символов. Способы преобразования могут меняться
от простого соответствия один к одному до сложных схем или алгоритмов
переключения.
Простой техники кодировки "один байт - один символ" недостаточно для
текстовых строк с таким широким репертуаром символов, как
[ISO10646]. Кроме кодировок всего набора символов (например, UCS-4),
имеются некоторые другие кодировки частей
[ISO10646].