Электронная почта по-русски

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


Таблица символов ASCII

Так вот, в те знаменательные годы нормальные американцы (те, что делают компьютеры) еще не знали (или не хотели знать? — прим. ред.), что, оказывается, кроме американского народа существуют и другие. Открытие Европы и других стран тогда еще не состоялось. Итак, сеть отдали народам, но те иноземцы (ведь о них — наша статья!), которые ею начали пользоваться, были на самом деле от своих соотечественников страшно далеки и узок был их круг. Они прекрасно обходились американским языком для общения с компьютерами и людьми, им подобными, в разных частях земного шара, а между собой они поначалу еще общались посредством речи и рукописного письма. И все по-прежнему было хорошо.

Но время шло, число иностранцев, имеющих доступ к компьютерам, росло, и (о, ужас!) однажды они возжелали общаться между собой через электронные средства коммуникации, причем, на своем тарабарском языке! Им так, видите ли, было естественнее. Тут-то и выяснилось, что американские программы для общения на тарабарском языке не очень-то годятся, поскольку рассчитаны они только на американский алфавит. Если кто не знает, американский набор символов самый маленький, даже англичанам, от которых американцы как бы произошли, требуются странные дополнительные значки для обозначения их денег. А французам простых букв-то надо раза в полтора больше. О нас, русских (или российских?), мы вообще до поры до времени скромно умолчим из политических соображений.

Так вот, американцы, когда создавали свои компьютеры, о наличии иных алфавитов, помимо их собственного, не задумывались, потому и решили, что для представления всяких печатных символов с лихвой хватит 128 чисел. Ну, в самом деле: 27 строчных букв, 27 прописных, 10 цифр, десяток знаков препинания — от силы 80 получается. Так что еще и запас оставался, ничего не скажешь.

Ну, дальше понятно, 128 — это 2 в степени 7, значит, для представления всевозможных символов было достаточно 7 бит. Именно такой, 7-битной, является таблица символов ASCII. Первая буква означает «для Америки».


Таблица символов Latin- 1

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

Вообще-то, для представления каждого печатного символа с самого начала разработчики компьютеров и программного обеспечения выделяли один байт. В байте всегда несколько бит, в процессе естественного отбора выжили и размножились только байты, состоящие из 8 бит. Лишний бит — это еще 128 символов и там можно разместить все крючки и завитушки, столь милые сердцу западных европейцев. Так была создана таблица символов Latin-1.

Но хорошо не стало. И хорошо не стало до сих пор.


Партизаны на рельсах Сети

Появление таблицы Latin-1 решило проблему представления некоторых национальных алфавитов. Но теперь нужны были программы, способные с этими представлениями работать! Те программы, которые американцы написали до этого, не рассчитаны на наличие информации в 8-м бите! Разумеется, программа, не рассчитанная на 8-й бит, может неожиданно заработать и с 8-м битом. Но это некачественная программа. Те программисты, которые хорошо учились в школе, твердо запомнили: следует проверять параметры функции на область определения, а результат — на область допустимых значений. И проверяли, тем более, что это было элементарно — 8-битные символы выглядели точь-в-точь как отрицательные числа. Сравнил с нулем — и все. То, что выходило за рамки, признавалось мусором. А рамки-то жестко запрограммированы, значит, надо программу переделывать, а программ много да и люди невечны...

Теперь представим себе европейца, создающего информационную систему для своего предприятия. Ему нужна таблица Latin-1, он ищет ПО, которое ее поддерживает, если он чего-то не нашел, он разрабатывет сам. В конце концов проблема решается. Теперь тот же самый европеец решил сообщить о своем успехе другому европейцу посредством крайне удобного средства общения — электронного письма. У каждого из них почтовая система пропускает 8-й бит (предположим). Но пути Господни неисповедимы, и сообщение попадает на промежуточную почтовую машину, где 8-й бит по старинке считают мусором и ОБНУЛЯЮТ. Все, привет.

Хорошо, если упомянутая выше нехорошая машина находится там же, в Европе. Можно, что называется, пойти и договориться. А если не в Европе? А если почтовых машин сто тысяч, и только тысяча из них «режет» (обнуляет) 8-й бит? А письма ходят разными, подчас непредсказуемыми путями? Вы, наверное, согласитесь со мной, если я сравню такие почтовые машины с диверсантами, затаившимися возле железнодорожного полотна. И, как и в случае с настоящими диверсантами, борьба с ними была долгой и мучительной. Сейчас они — на грани полного уничтожения, а редкие встречи с оными вызывают не раздражение, а удивление, смешанное с уважением: «Надо же, живучесть-то какая! Даже старость их не берет!» Но до «сейчас» мы в нашем повествовании еще не добрались.


Таблица символов КОИ-8

Теперь оставим западных европейцев, не такие уж они, в конце концов, несчастные. Ну, потеряли пару завитушек в письме, остальные буквы-то читаются! Неприятно, но понятно. Давайте подумаем о нас, европейцах не просто восточных, а, как бы это сказать... дальне-восточных. Наш алфавит отличается от латинского полностью, символов в нем много (66), поэтому в таблицу Latin-1 вместе с латинскими завитушками он не уместился. Придумали ему отдельную таблицу, она получилась пятой по счету. В конце концов называться эта таблица стала ISO 8859-5. Кто придумал эту таблицу, непонятно. ISO 8859-5 — это продукт в чистом виде, вещь в себе, прекрасная в своей чистоте и возвышенности. Создатели ISO 8859-5 абстрагировались от массы технических проблем, которые могли бы повлиять на расположение русских букв в таблице. Например, она конфликтует с псевдографикой в DOS, почему-то не подошла для Windows. А тема нашего разговора — электронная почта?

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

Теперь представим себя на месте разработчиков таблицы символов кириллицы, желающих повысить устойчивость передаваемой текстовой информации к «обрезанию». Наверное, мы захотим сделать так, чтобы адресат смог понять содержание письма, если оно написано по-русски, пусть и латинскими буквами. К счастью, значительное число букв кириллицы имеет фонетические аналоги в латинском алфавите. Например П и P, Р и R. Есть несколько совпадающих к тому же и по написанию. Значит, разумно так расположить русские буквы, чтобы они отличались от АНАЛОГИЧНЫХ ЛАТИНСКИХ на число 128! Тогда потеря 8-го бита превратит текст хоть и в состоящий из одной латиницы, но все равно читаемый по-русски. Неприятно, зато понятно.

Таблица символов КОИ-8 как раз и есть такая таблица. Именно она применяется для обмена почтой и новостями в Internet. Надеюсь, я смог доказать вам, что КОИ- 8 не блажь, а суровая необходимость. Если же вы полагаете, что с истреблением «диверсантов» КОИ-8 больше не актуальна, приведу один свежий случай.

Одна моя знакомая поехала в качестве аспирантки в Англию. Там была машина и электронная почта. Первое письмо, которое я от нее получил, было на языке «ruglish», том самом фонетическом эквиваленте, когда «здравствуй» выглядит как «zdrawstwuj». Брр... Я, знаете ли, предпочитаю творение Кирилла и Мефодия для общения с соплеменниками, поэтому часть своего ответа написал по-русски, в КОИ-8. Я это сделал в надежде, что мой корреспондент — не первый русский в Англии, и, может быть, просто не знает, что все уже налажено. Если нет, то по симптомам (закорючки таблицы Latin-1 вместо русских букв, например), можно было бы предложить простой выход, например, прислать правильный экранный шрифт.

Но не тут-то было. Во-первых, в том английском университете, где работает моя знакомая, затаился «диверсант», и он срезал 8-й бит в каждом символе моего послания (вот он, консерватизм!). В результате же письмо было прочитано! Оно стало похоже на близкий сердцу уехавших русских «ruglish», хотя и отличалось в способе имитации ряда букв. Вокруг этих различий и завязался воспитательный процесс — меня, недоумка, взялись обучать писать правильно! Ни о каком использовании кириллицы и речи больше не было, ведь «ruglish» это так удобно — «my vse tak pishem». Но это уже тема для социологических исследований.


Другие таблицы символов

Итак, придумали таблицу символов (мы еще говорим: «кодировку», поскольку с помошью таблицы «закодирован» русский алфавит) для обмена почтой и назвали ее КОИ-8, что означает «код отображения информации 8-битный). И, скажете вы, наконец-то, все образовалось. Нет, дорогие читатели, не образовалось (хотя и стало легче, конечно). Потому что случился очередной качественный скачок в наступлении компьютеров на нашу маленькую планету. Недорогие персональные компьютеры сделали огромное количество ничего не подозревавшего народа ПОЛЬЗОВАТЕЛЯМИ. А когда огромное количество народа овладевает какой-нибудь идеей или вещью, последние настолько видоизменяются, что хорошо, если не становятся свими противоположностями. Так и с компьютерами. Персоналки перевернули все вверх- тормашками.

Раньше занятие с компьютером было делом элитным — теперь стало, скорее, вульгарным.

Раньше компьютеры большую часть времени рассчитывали формулы и строили чертежи — теперь служат для игр или, в лучшем случае, для рисования красивых докладов начальству.

Раньше котировались мощные и надежные многозадачные операционные системы — VMS, UNIX, теперь всем подавай DOS и Windows.

Раньше компьютерный пользователь кое-что знал о своем компьютере и грамотно его использовал — теперь большинство ожидает от машины, что она сама себя настроит, наладит, договорится с другими машинами, а пользователю останется только получать удовольствие. Просить пользователя прочитать пяток страниц руководства и ввести пару Internet-адресов — чуть ли не дурной тон.

Не подумайте только, что я хочу сказать, что это ПЛОХО, просто это — ДРУГАЯ жизнь.

Надо ли объяснять, что огромная масса персоналок имела свои собственные проблемы и устанавливала свои собственные стандарты. Одна из таких проблем — поддержка русского языка. Электронная почта мало кого тогда тревожила, а вот вводить и обрабатывать русские тексты в многочисленных программах для DOS надо было всем. Кодировка КОИ-8 не подходила для этой цели (так же как и ISO 8859-5), в ее таблице некоторые русские буквы находились на тех местах, которые импортные программы предполагали заполненными графическими символами — вертикальными и горизонтальными черточками, различными уголками, прямоугольниками и так далее. Псевдо-графические символы были очень важны — с их помощью достигалась привлекательность персоналок для пользователей. Поэтому была придумана еще одна кодировка кириллицы, в таблице которой русские буквы «обтекали» со всех сторон графические символы. Назвали эту кодировку «Альтернативной», поскольку она была альтернативой официальному стандарту — кодировке ISO-8859-5. Последнюю, чтобы не обиделась, стали величать «Основной». Но ею все равно почти никто не пользовался.

Когда настала очередная революция и все бросились осваивать Windows, выяснилось, что Альтернативная кодировка не подходит — говорят, какую- то ее часть первые версии Windows не обрабатывали («не пропускали»). «Основная» тоже не подошла. Ничтоже сумняшеся, кто-то подвинул русские буквы в таблице так, чтобы все они «пролезали», благо псевдо-графика в Windows не требуется, и получилась кодировка «Windows 1251», самая, наверное, теперь распространенная.

(Продолжение следует)

Сергей Мелихов,
DataX/FLORIN, Inc.

Версия для печатиВерсия для печати

Номер: 

12 за 1997 год

Рубрика: 

Телекоммуникации
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!