Поиск

Кодирование символов

Я думаю, нет нужды доказывать, что основным языком Интернета является анг лийский. В то же время для гипертекстовых документов предусмотрено исполь зование национальных алфавитов. Стандартным режимом отображения являет ся кодировка ISO Latin I (ISO 88591). Она подходит как для MSDOS (набор символов ASCCII), так и для Windows, поэтому набор программ для просмотра и редактирования кода HTML, достаточно широк. В то же время броузеры поддер живают набор символов Unicode 2.0 (ISO10646), что позволяет использовать на циональные алфавиты. С практической точки зрения это означает, что символы могут кодироваться однобайтовым числом (коды в пределах 0255) или двубай товым (065 535). В первом случае для использования национального алфавита необходим атрибут charset (см. листинг 1.1), так как одни и те же коды символов могут быть интерпретированы поразному для различных кодовых страниц, А как быть, если атрибут charset не указан? Раскройте в MSIE подменю Вид коди ровки меню Вид и проверьте, какие кодовые страницы доступны на вашем ком пьютере. Наверняка вы найдете команды, отвечающие за отображение русских букв: Кириллица (Windows) и/или Кириллица (КОИ8Р). Это две наиболее популяр ные в нашей стране кодировки. Самый простой вариант, когда для Webстраницы не указана ни кодовая страница, ни конкретные шрифты. Тогда броузер будет использовать шрифты, выбранные по умолчанию. Поскольку каждый пользова тель настраивает программу для себя и применяет шрифты с национальными ал фавитами, то с отображением отечественных ресурсов проблем обычно не возни кает. Русский будет читать русские, а немец — немецкие тексты. Если страница загружается из Интернета, то проблема тоже может быть решена: броузер анали зирует текст страницы и пытается подобрать необходимую кодировку. Если он делает это неправильно, пользователь всегда может применить упомянутую выше команду и исправить положение.

Если в документе есть указание на определенную кодовую страницу, выбор шрифта (в данном случае — некоторого подмножества символов, которые будут служить для отображения кодов 128255) будет предопределен. Коды 32127, то есть знаки препинания, цифры и буквы латинского алфавита, отображаются в по давляющем большинстве случаев правильно, а коды 128255 могут отображаться поразному. Обычно программы поддерживают большое число национальных алфавитов. Во время инсталляции программного обеспечения автоматически устанавливаются и необходимые для этого шрифты.

Проблема чаще всего возникает, если кодовая страница указана неправильно. Напри мер, при создании гипертекстовых документов в MS Word или MS FrontPage Express в текст страницы автоматически добавляется конструкция типа charset=xxxxx, которая не позволяет использовать кириллицу. В этом случае необходимо правиль но указать значение атрибута: charset=windows1251 (или другое, если вам нужна другая кодовая страница). Если вы посмотрите «фирменные» русские сайты в Интернете, то обнаружите, что большинство переключателей кодировки предла гают два варианта использования кириллицы: Windows и КОИ8.

Почему же возникают такие сложности, когда существует система Unicode? От вет прост: изза стремления разработчиков обеспечить себе комфортные услови; работы. Действительно, все стандартные программы рассчитаны на однобайтно' представление символов. А редактировать код HTML удобнее всего, просто ввод; символы с клавиатуры. Если же документ использует кодировку Unicode, то дл; работы с ним не подойдут такие средства, как Блокнот, Norton Commander шп WordPad, и придется остановиться на гипертекстовом редакторе. В этом случа! русская буква А будет выглядеть в режиме «источника» так: &#1040 (в десятично! кодировке). Такую страницу будет сложно читать и редактировать. Вы может< столкнуться с подобной кодировкой, если будете набирать кириллицу в неруси фицированном гипертекстовом редакторе. Он может выполнить автоматическое преобразование символов. Поэтому каждый новый редактор надо тестировать ш возможность использования русских букв: набрать небольшой текст, сохранит! документ, а затем просмотреть его в режиме источника.