Чтение онлайн

ЖАНРЫ

Интернет-журнал "Домашняя лаборатория", 2007 №3
Шрифт:

При создании локализованной версии операционной системы Windows фирма Microsoft решила изменить ставшую общепринятой русскую кодовую страницу Dos(866). В частности, с появлением графического интерфейса отпала необходимость в использовании символов псевдографики, что позволило сделать порядок символов русского алфавита в кодовой странице в соответствии с алфавитной последовательностью, а также разместить в ней различные специальные символы вроде изображения торговой марки — ™. Появилась кодировка Windows-1251, которую создал тот же Петр Квитек. В ней тем символам, что в кодировке Dos (866) соответствовали одни русские буквы, были поставлены в соответствие другие символы. В результате для чтения в Windows русского текста, набранного в Dos, стали требоваться программы-перекодировщики.

Шрифты

"Носителями"

кодовых страниц в Windows являются шрифты. Каждый шрифт — это фактически как бы отдельная кодовая страница, в которой записана информация о внешнем виде отображаемых символов, их дизайну, графике и соответствии каждого графического изображения символа определенному коду. С помощью программы Windows "Таблица символов" можно посмотреть первые 256 символов, могущих быть отображенными с помощью данного шрифта. Это могут быть как символы, соответствующие кодовой странице Windows-1251 и применяемые для отображения текста, так и значки для "разукрашивания" текстового документа, хранящиеся в специальных символьных шрифтах или даже математические символы (рис. 13.3).

Рис. 13.3. Шрифт, состоящий из математических символов.

Практически все текстовые редакторы под Windows, кроме разве что Блокнота, дают возможность пользователю выбирать желаемый шрифт для его текста. Текст, набранный с помощью обычного шрифта, например, Ms Serif, будучи оформлен шрифтом символьным вроде Wingdings, превратится в набор символов: "?????????????", так как в этом шрифте на местах, соответствующих кодам символов русских букв, расположены графические картинки стрелок.

Unicode

В ранних версиях Windows для каждой кодовой страницы должен был иметься свой шрифт, так как в один шрифт — в одну кодовую страницу — нельзя было поместить больше 255 символов. Это имело определенные неудобства, и был придуман и утвержден новый стандарт таблицы символов — Unicode. Согласно этому стандарту каждый символ кодировался не восемью, а шестнадцатью битами информации, что позволяло закодировать до 65536 символов. Эта кодировка также получила название двухбайтовой кодировки. Для совместимости со старыми стандартами первые 256 символов стандарта Unicode соответствовали стандартной кодовой таблице, а на остальных местах можно было разместить все необходимые символы всех языков. Были созданы новые шрифты в стандарте Unicode. Безусловно, использовались в них далеко не все 65 тысяч символов — стандарт имеет большой задел на будущее, и пока в шрифтах, совместимых с этим стандартом, "заняты" только первые сотни мест.

В шрифте Unicode имеется как бы несколько кодовых страниц сразу. Вот, к примеру, состав Unicode-шрифта Times New Roman (рис. 13.4).

Рис. 13.4. Содержимое шрифта Times New Roman, соответствующего стандарту Unicode, в окне Word97 "Вставка символа"

Вы видите в правом углу диалогового окна Word "Вставка символа" список региональных кодовых страниц, представленных в этом шрифте. Для того, чтобы программы, не поддерживающие стандарт Unicode (например, Microsoft Word 6.0), могли работать с такими шрифтами, операционная система осуществляет так называемую "подстановку шрифтов", то есть "раскладывает" шрифт Unicode на отдельные кодовые страницы и выбирает из него ту страницу, которая соответствует установленной в системе. Параметры подстановки прописываются в системном реестре, а в операционных системах Windows9x — ив файле Win.ini (рис. 13.5).

Рис. 13.5. Подстановка шрифтов в файле Win.ini.

Смысл находящихся в системном реестре и в файле win.ini выражений — указание программам на

то, где в шрифте искать символы, соответствующие нужной кодовой странице. Так, для шрифта Times New Roman эти символы (кириллица) начинаются с 204-го места, что и указано в Win.ini. Теперь Microsoft Word 6.0 спокойно будет работать с Unicode — шрифтом Times New Roman, воспринимая его как обычный кириллический шрифт. При этом в восприятии этого текстового редактора шрифт Times New Roman окажется как бы "разложенным" на набор шрифтов (Times New Roman Cyr, Times New Roman СЕ и др.), каждый из которых будет соответствовать определенной кодовой странице, несмотря на то, что все эти "шрифты" хранятся в одном файле.

Иногда встречается ситуация, когда Microsoft Word 97 вполне нормально отображает на экране текст, но на принтер выводится набор квадратиков. Это вот как раз проявляется некорректное взаимодействие программного обеспечения, когда одни компоненты (Word97) поддерживают новый стандарт, а другие (драйвера к принтеру) — нет[29].

Существуют русские шрифты, полностью совместимые с стандартом Unicode, которые без проблем отображаются и печатаются как в старых, так и в новых программах. Они содержат только стандартный набор символов, соответствующий русской кодовой странице и отличаются еще красивым их дизайном. В выпадающем меню выбора шрифта они обычно имеют префикс "а " (рис. 13.6).

Рис. 13.6. Шрифты Unicode — работают везде.

Koi-8

В то время как на рынке операционных систем для персональных компьютеров безоговорочную победу одержала всем нам знакомая MS-DOS, среди операционных систем для сетей дело обстояло не так. Там начинала властвовать Unix — операционная система, построенная на несколько других принципах. Эта система имела открытый исходный код — любой программист мог создать "свою" Unix, настроенную именно на его предпочтения, была очень удобна для программирования. И эта операционная система весьма бурно развивалась в своей отрасли — объединении компьютеров в единое целое. Понятие о кодовой странице в Unix имело несколько другое значение, но на этом сейчас останавливаться не стоит.

С развитием сетевых технологий возникла тенденция к объединению не только компьютеров, расположенных в одном месте, в локальные сети, но и самих этих сетей в некое единое целое. Начала зарождаться Всемирная Сеть — Internet. И одной из первых возможностей объединенной сети стала возможность обмена информацией посредством текстовых сообщений — электронная почта, e-mail.

Для работы с электронной почтой, ее передачи и приема, сортировки и разработки маршрута движения были созданы специальные системы — почтовые сервера. Сам по себе "почтовый сервер" — это программа, постоянно работающая на компьютере и выполняющая задачи по обработке почты, поступающей на компьютер, на котором она запушена, из Сети и отправляющая почту в Сеть. (Однако нередко для работы такой программы выделялся отдельный компьютер.) Чаще всего они работали под управлением операционной системы Unix.

Всемирная Сеть изначально зародилась и начала развиваться в Америке. Поэтому вся система почтовых серверов вначале была предназначена для работы с почтой англоязычных пользователей, пишущих также англоязычным адресатам. Так как использование в текстовых сообщениях, которые составляли тогда единственное содержимое электронной почты, символов псевдографики было отнюдь не обязательно (хватит и простого текста!), то программы, работающие с электронной почтой, как на компьютерах пользователей, так и на почтовых серверах, делались в расчете на первую половину кодовой страницы — на семибитную кодировку.

Ясно, что текстовые сообщения, содержащие символы с кодами, большими 127 и не могущие быть закодированы семью битами, нормально такими серверами обрабатываться не могли. Для того, чтобы такие письма все же как-нибудь проходили через семибитные почтовые серверы, символы сообщений принудительно приводились к семибитному виду — у них обнулялся первый бит, указывающий на половину их кодовой страницы. Например, символ "е" (русская буква е) переходил в "f", символ "ш" — в "у". Дальше шло уже обработанное таким образом письмо.

Поделиться с друзьями: