Говорим по-русски. О кодировках кириллицы

В настоящее время существует пять основных кодировок кириллицы, то есть наборов символов, с помощью которых можно отобразить на web-странице знаки русского алфавита. Они носят названия ISO, KOI8-R, DOS, Windows 1251 и MAC. Имеется также ряд менее распространенных кодировок, так или иначе способных воспроизводить символы кириллицы, они называются Unicode(UTF-8) и транслит.

ПРИМЕЧАНИЕ Кодировкой кириллицы называется общепринятый стандарт, включающий набор символов, который позволяет отображать в документах HTML знаки русского алфавита.

Исторически первой возникла кодировка KOI8 (код обмена информации восьмибитный), соответствующая стандарту ГОСТ 19768-74. Она была разработана в середине семидесятых годов специалистами одного из советских НИИ и к се- редине восьмидесятых стала базовой кодировкой для только что появившихся тогда в нашей стране русифицированных UNIX-совместимых операционных систем. Именно благодаря этому на сегодняшний день KOIS является основным стандартом для серверов, работающих на базе платформы UNIX (например, для http-сервера Apache), а также используется в качестве «формата по умолчанию» при пересылке сообщений электронной почты на русском языке.

Компания Microsoft, создавая программное обеспечение для работы в Интернете, как водится, пошла своим путем, предложив стандарт Microsoft code page1251 (Windows 1251), получивший чрезвычайно широкое распространение благодаря популярности операционной системы Microsoft Windows и http-сервера Internet Information Server, входящего в комплект поставки Windows NT. Именно поэтому и Windows 1251, и KOI8-R входят в тот минимально допустимый набор кодировок, которые должна обязательно поддерживать любая web-страница.

Стандарт Microsoft/IBM code page 866 (альтернативная кодировка DOS) служит базовой кодировкой в операционных системах MS-DOS и OS/2, и потому в настоящее время она медленно, но верно утрачивает свои позиции, поскольку даже сам разработчик и производитель DOS, компания Microsoft, отказалась от дальнейшей поддержки этой линии операционных платформ. Тем не менее кодировка жива и по сей день, прежде всего, благодаря тому, что часть пользователей не намерена пока расставаться с броузерами, работающими в среде MS-DOS, а также по той причине, что данный стандарт принят по умолчанию в некоммерческой сети FidoNet.

Кодировка ISO-8859-5 была разработана Комитетом по международным стандартам (International Standards Organization, ISO) и применяется в основном вUNIX - совместимых операционных системах. Поскольку данный набор символов был создан западными специалистами, плохо знакомыми не только с самим русским языком, но и с уже имеющимся многообразием кодировок кириллицы, ISO не получила широкого распространения, однако все же достаточно часто встречается в Интернете и активно поддерживается рядом русскоязычных серверов.

Macintosh CP (MAC) предназначена для использования на компьютерах AppleMacintosh, оснащенных операционной системой MacOS. Из-за высокой стоимости Apple-совместимые компьютеры не получили в нашей стране широкого распространения, однако они иногда эксплуатируются на крупных отечественных предприятиях.

Универсальный международный стандарт Unicode (UTF-8) был создан с благородной целью объединить все существующие на сегодняшний день национальные кодировки в одну. Поскольку для отображения одного символа в Unicode отводится не один байт, как это принято во всех остальных стандартах, а два, данная кодировка включает в себя 65 536 знаков вместо 256. В это число входят не только буквы всех алфавитов мира как существующих ныне или созданных искусственно, так и уже практически вымерших, но и множество специальных символов — математических, музыкальных, физических. Однако пре- одолеть инертность большинства владельцев интернетовских ресурсов не так-то просто: поддержка Unicode требует замены части программного обеспечения, да и далеко не все клиентские программы умеют распознавать этот стандарт. Именно поэтому сегодня Unicode практически не используется в Интернете —по всей видимости, это кодировка будущего.

Для операционных систем, вообще не поддерживающих кириллицу, существует транслит. Собственно, данный «вариант русского языка» даже трудно назвать кодировкой, поскольку транслит подразумевает всего-навсего запись русских слов символами латинского алфавита. Такой подход связан с определенными трудностями, так как стандартный латинский шрифт не содержит большинства необходимых для полноценного отображения русского текста символов, напри- мер, таких как мягкий и твердый знаки, а также буквы «и», «ш», «щ», «ы»,«ю», «я» и некоторые другие. Поэтому и был разработан набор правил, позволяющих избегать подобных трудностей. Существует также специальное программное обеспечение, облегчающее перевод русского текста на транслит.

Большинство современных серверных программ обладают встроенной функцией автоматического определения кодировки, используемой клиентским программным обеспечением, и перевода текста в необходимый стандарт «на лету». Однако бывают ситуации, когда возможность автоматического распознавания необходимого пользователю набора символов на сервере отключена или попросту отсутствует. Как раз на этот случай существует стандарт, согласно которому для вывода каждой из кодировок русского языка назначается один из портов сервера. Адрес порта записывается через двоеточие после обозначения домена первого уровня в формате http://www.домен.ги:адрес_порта/название документа.

Ниже перечислены стандартные адреса портов для большинства используемых в Интернете серверных программ:

8080 - Microsoft code page 1251 (Windows 1251);

8081 - Microsoft/IBM code page 866 (DOS);

8082 - Macintosh CP (MAC);

8083 - KOI8-R;

8084 — транслит.

Когда web-мастеру по каким-либо причинам необходимо перевести текст из одной кодировки в другую (а такие ситуации возникают довольно часто), обычно применяют одну из многочисленных программ-перекодировщиков, которые можно без труда найти на сайтах, предлагающих бесплатное программное обеспечение.

JAVA

Язык программирования Java, разработанный около восьми лет назад компанией Sun Microsystems и напоминающий по структуре и синтаксису хорошо знакомый многим программистам С, существует сегодня в Интернете в двух вариантах: JavaScript и собственно Java. Первый вариант языка является всего лишь надстройкой стандарта HTML и значительно расширяет возможности документа, созданного в этом формате. Модуль, написанный на JavaScript, интегрируется в файл HTML как подпрограмма и вызывается на исполнение из соответствующей строки HTML-кода стандартной командой. Встроенный в броузер интерпретатор языка воспринимает и скрипт, и сам код гипертекста как единый документ, обрабатывая те и другие данные одновременно. Модуль Java в отличие от JavaScript не интегрируется в использующую его страницу, а существует как самостоятельное приложение с расширением .classили, выражаясь научным языком, апплет. При использовании этого варианта языка апплет также вызывается из html-файла соответствующей командой, но загружается, инициализируется и запускается на исполнение в виде отдельной программы, в фоновом режиме.
С помощью технологии Java можно придать своей странице элементы интерактивности, формировать, компоновать и полностью контролировать формат всплывающих окон и встроенных фреймов, организовывать такие активные элементы, как «часы», «бегущие строки» и иную анимацию, создать чат. Большинство web-камер, передающих на сайт «живое» изображение, также работают на базе соответствующих приложений Java.

Среди достоинств этой технологии следует отметить отсутствие необходимости устанавливать и настраивать на сервере какие-либо дополнительные модули, обеспечивающие работу Java-программ. Главный недостаток Java заключается в том, что пользователи броузеров старых версий, не поддерживающих компиляцию данного языка, воспринимать объекты, созданные при помощи Java и JavaScript, не смогут.

CGI

Технология CGI (Common Gateway Interface) подразумевает использование в составе ресурса Интернет интерактивных элементов на базе приложений, обеспечивающих передачу потока данных от объекта к объекту. Именно так организовано во Всемирной сети большинство чатов, конференций, досок объявлений, гостевых книг, поисковых машин и систем подсчета рейтинга. В общем случае принцип работы CGI выглядит следующим образом: пользователь заполняет на web-страничке ту или иную форму и нажимает на кнопку, после чего встроенная в код HTML строка вызова CGI-скрипта запускает соответствующую программу CGI и передает ей управление процессом обработки информации. Введенные пользователем данные отсылаются этой программе, а она, в свою очередь, «встраивает» их в другую страницу, отправляет по почте или трансформирует каким-либо иным способом.

Скрипты CGI размещаются на сервере в специально отведенной для этих целей директории, которой, как правило, назначается имя CGI-BIN. Следует помнить, что подключение, отладка и запуск таких программ требуют соответствующих прав доступа к http-серверу,а также определенных знаний и навыков.

Технология CGI обычно реализуется двумя методами: либо с использованием программ, написанных на языке PERL (Practical Extraction and ReportLanguage), — такие файлы имеют расширение .pi, либо с помощью приложений, созданных обычно с применением языка С и откомпилированных непосредственно на сервере, поскольку большинство UNIX-совместимых платформ включают в себя встроенный транслятор этого языка. Подобные программы имеют расширение .cgi. Необходимо отметить, что PERL, как и HTML, является интерпретируемым языком. Иными словами, для того чтобы запустить подобный скрипт на исполнение, не требуется дополнительной компиляции. Помимо упомянутых возможностей с помощью данной технологии можно организовать систему показа последовательности рекламных баннеров или автозагрузки файлов на сервер, создать форму отправки электронного письма непосредственно со страницы сайта или службу виртуальных открыток. Среди достоинств CGI следует отметить их независимость от клиентского программного обеспечения — эту технологию сможет применять каждый пользователь, просматривающий содержимое сервера при помощи броузера практически любой версии. Главный недостаток заключается в том, что для установки и на- стройки приложений CGI на сервере нужно обладать как минимум правами администратора, поскольку эти программы при запуске способны нарушить нормальное функционирование серверного компьютера и дестабилизировать работу сети.

SSI

SSI (Server Side Includes) — технология, тесно переплетенная с упомянутой выше CGI. На основе макроязыка, очень напоминающего С, SSI позволяет реализовать такие возможности, как вывод в документе того или иного текста в зависимости от определенных условий или согласно заданному алгоритму, формировать файл HTML из динамически изменяющихся фрагментов или встраивать результат работы CGI в какой-либо его участок. Достоинства и недостатки SSI аналогичны описанным в предыдущем абзаце.

CSS

Зачастую у web-дизайнера возникает необходимость применить в процессе создания html-документа сложное форматирование — от абзаца к абзацу менять шрифт, расположение текста, его цвет, формировать различные таблицы данных. Можно решить эту проблему с помощью стандартных средств HTML: описывать каждый абзац отдельным набором команд, но в этом случае итоговый документ будет иметь большой размер, да и само создание кода становится весьма трудоемкой работой. Можно пойти другим путем: подключить к странице внешний файл, выполненный в стандарте CSS — Cascading Style Sheets (каскадные таблицы стилей), в котором с помощью специального макроязыка один раз жестко задать форматирование страницы. Другимисловами, файл CSS выполняет роль некоего шаблона, применяемого для форматирования текста, таблиц и иных элементов в документе HTML. Есть возможность подключать один и тот же физический файл CSS к различным web-страницам сайта. CSS можно использовать практически на любом сервере без каких-либо ограничений. Крупные недостатки у данной технологии также практически отсутствуют

РНР

РНР (Personal Home Page tools) — это еще один интерпретируемый язык, напоминающий PERL, предназначенный для придания web-страницам элементов интерактивности. Код, написанный на языке РНР, встраивается в документ HTML подобно подпрограмме: в тот участок документа, где необходимо разместить интерактивный элемент, просто вставляется сценарий РНР. Мнемоника данного языка базируется на синтаксисе PERL, Java и С, благодаря чему не вызывает каких-либо трудностей при изучении. Методики, которые позволяют серверам корректно распознавать файлы, содержащие скрипты РНР, различны и зависят в первую очередь от типа конкретного сервера. Считается достаточным назначить такому файлу расширение .php, иногда — с добавлением номера версии используемого языка, например .php2 или .php3.

Технология РНР позволяет организовать на web-странице счетчик посещений, подсчитывать статистику обращений к тем или иным разделам сайта, защитить доступ к какому-либо html-документу паролем и многое другое. Среди недостатков РНР следует отметить то, что данная технология поддерживается далеко не всеми серверами Интернета.

ASP

ASP (Active Server Pages, активные страницы сервера) — еще одна технология, аналогичная JavaScript и РНР. Для того чтобы сделать web-страницуинтерактивной с применением технологии ASP, необходимо встроить в ее код соответствующий скрипт, написанный на макроязыке, отдаленно напоминающем Java и С. Скрипт интерпретируется и исполняется непосредственно на сервере, после чего пользовательскому броузеру отправляется уже готовый html-документ с результатами работы сценария ASP. Отсюда следует вполне справедливое заключение о том, что для страниц, содержащих ASP, не имеет значения, какое программное обеспечение установлено на пользовательском компьютере. Зато принципиальное значение имеет тип сервера, на котором вы планируете использовать ASP, поскольку отнюдь не все они поддерживают данную технологию.