Библиотека сайта rus-linux.net
Крестоносцы
ОЛЕГ ТАТАРНИКОВ, опубликовано: 24.3.1997
© 2002, Издательский дом «КОМПЬЮТЕРРА» | http://www.computerra.ru/
Журнал «Компьютерра» | http://www.computerra.ru/
Этот материал Вы всегда сможете найти по его постоянному адресу: http://www.computerra.ru/offline/1997/189/431/
Введение
Ты так гонишься за тенью,
что теряешь наличие.
Из книги Иова
Концепции Интернета, первоначально разработанные в унитарной, централизованной армейской системе министерства обороны США, быстро вышли из "диктаторских пут" и воспринимаются сегодня как идеи всемирной общедоступной информационной магистрали. Любые попытки ограничения доступа, цензуры и внешнего воздействия на Сеть однозначно воспринимаются мировым сообществом в штыки. За широким внедрением Интернета в нашу жизнь не стоит никакая организация: это самоорганизующаяся система, и главный ее двигатель - все человечество. В этом основное отличие всемирной Сети от коммерческих сетей, в этом ее привлекательность для миллионов и ее сила. В таком свете неприглядно выглядят сторонники массовой "коизации" информационного обмена в России, стремящиеся загнать всех российских пользователей в прокрустово ложе единой кодировки. Тем более что носители этой идеологии составляют абсолютное меньшинство российских пользователей Интернета, пусть даже и самое активное. Причем благие намерения, которыми они при этом руководствуются, никак не служат оправданием для насильственного ограничения свобод и причинения дополнительных неудобств огромной армии пользователей, число которых продолжает стремительно расти. Ибо известно, куда таковыми намерениями обычно мостятся дороги.
Поводом для написания данной статьи послужили многочисленные послания, приходящие по электронной почте автору и многим другим "русскоязычным" абонентам Интернет-ресурсов в нечитабельном виде, то есть совершенно непригодные для чтения и никакой расшифровке не поддающиеся (проще говоря, безвозвратно загубленные - состоящие из одних "крестов"). Причем основными "виновниками" этого оказались провайдеры Интернет-ресурсов, как раз и обязанные оградить своих клиентов от подобных казусов.
Пытаясь разобраться во всех существующих проблемах и найти возможные пути решения, я обратился непосредственно к тем, кто максимально заинтересован в преодолении существующих трудностей, то есть к разработчикам программного обеспечения, Интернет-провайдерам и, естественно, их клиентам.
При всех очевидных разногласиях, существующих между этими группами (каждая из которых преследует несколько разные цели с одним общим знаменателем - избавить себя от необязательной работы), необходимость их сближения для понимания общих проблем очевидна.
Итак, существуют три основных Интернет-ресурса (проблема с русским языком для них одна, а решения могут быть и различные):
- электронная почта (Mail);
- телеконференции (News);
- WWW-ресурсы.
В ближайшей перспективе, видимо, не удастся уйти от использования в Сети кодировки KOI8-R (сказывается инерция крупнейших Интернет-провайдеров). Остается лишь минимизировать ущерб от такой "сектантской" приверженности. Но даже при всеобщем стремлении к единству, будущее, по общему мнению, принадлежит набирающей силу универсальной кодировке Unicode, а в дальнейшем целесообразен перевод всех Интернет-ресурсов на HTML-формат (или какой-либо другой, который придет ему на смену) с передачей адресату текста вместе со всеми используемыми в нем шрифтами и версткой, что решит сразу несколько проблем, в том числе и с национальными алфавитами.
Электронная почта
Прибежали в избу дети, второпях зовут отца:
Тятя, тятя,
наши сети притащили мертвеца.
А. С. Пушкин
Электронная почта - это частное дело двух человек (отправителя и получателя). В идеале производитель клиентской программы может обеспечить пользователя возможностью перевода из кодировки (одной из возможных, реально - это две-три), в которой сообщение поступило, в локальную, принятую на данной компьютерной платформе и/или операционной системе, и обратно (в соответствии, например, с именами в MIME charset). Но только возможностью! Чтобы пользователь всегда мог от нее отказаться и передавать сообщение как ему угодно. В любом случае этого не должен делать сервер. Вообще, какие-либо действия с корреспонденцией (за исключением пересылки) необходимо запретить категорически, ибо они напоминают перлюстрацию писем - не его (сервера) это собачье дело, он лишь почтальон, транспорт. Пока общие правила не выработаны, а программы работают "криво" - в ход идут всевозможные обходные маневры, который только усугубляют положение.
Единственный выход из этого - возложить всю ответственность на отправителя (по умолчанию). По отдельной договоренности можно, конечно, предоставить ему и другие возможности, но оставить право выбора. А что же мы видим сегодня? Владельцы серверов включают "неестественный интеллект" и насильственно перекодируют любое сообщение в KOI8-R. Помилуйте, господа! Откуда вы знаете, как и на каком языке я пишу послания в нашей многонациональной стране? Почему вы думаете, что я его не шифрую и не кодирую как мне заблагорассудится? Почему вы мните себя всемогущими и всеведущими и наделяете себя правом уничтожать частную информацию (а именно так зачастую и происходит). Посмотрите на кодовые таблицы. Что такое перекодировка? Это прибавление (или вычитание) к коду символа некоторого числа, определяющегося разницей между положениями символа в кодовых таблицах. Если в результате двойного или неправильного перекодирования полученный код "выскочит" из диапазона 0-255, то информация о символе будет утеряна! В качестве упражнения попробуйте перекодировать в KOI8-R, например, текст, представленный в альтернативной DOS-кодировке, принимая ее за Windows 1251, а потом попытайтесь что-либо восстановить…
Фанатики "запудрили мозги" даже фирме Netscape, и теперь браузером Netscape Navigator вообще невозможно пользоваться: он принудительно перекодирует, например, из Windows 1251 в KOI8-R, причем без возможности отключения и только в одну сторону - при отправке.
В конце концов, существуют Uuencode, MIME, Quoted-printable и прочие шифровальщики 8-битных символов, придуманные именно затем, чтобы обеспечить гарантированную передачу сообщений даже при "обрезании" 8-го бита (о чем будет сказано ниже), чтобы было удобно всем и каждый мог бы использовать "родную" кодировку, - а у нас пытаются всех загнать в одно стойло. Конечно, далеко не все почтовые программы могут автоматически корректно восстановить текст из бессодержательного набора букв, цифр и знаков препинания, в которые он после этого превращается. А что делать? Если вы не намерены производить массовые рассылки неизвестным абонентам, то со своими адресатами всегда можете договориться. Причем в этом случае неплохо воспользоваться и каким-либо специальным шифром (а такую возможность начисто отвергают сторонники серверной перекодировки).
Да, посылая письма неизвестному адресату (с которым вы не успели договориться о приемлемом для вас обоих формате), вы рискуете попасть впросак. Но это должно быть на вашей совести! Здесь проще прибегнуть ко всем кодировкам одновременно или написать по-английски. Или по-русски, но английскими буквами (что многие и делают, даже вопреки потугам "слишком умных" провайдеров). Нынешнее положение вещей недопустимо! Программы от версии к версии изменяют правила оформления, форматы данных и кодирование. Серверы обретают "неестественный" интеллект и "непроходимую" настойчивость, а пользователи, вместо того чтобы заниматься делом, - ищут средства для "обмана". И существующая ситуация настолько зыбкая, что гарантий не может дать никто, а благодаря всевозможным ухищрениям, положение только ухудшается. Посудите сами, если вам прислали письмо в какой-то конкретной кодировке (из двух-трех возможных реально), пусть даже неудобной для вас, - его можно перекодировать и самостоятельно. Если же по пути оно прошло через две-три "насильственные" трансформации, то информация безнадежно утеряна.
Конференции по интересам
>>>> А вот зайца кому?
>>> Мне!
>> Й
чОЕ!!
> i mne!!!
and me too!!!!
Телеконференции - это единственное место, где вопрос, какую кодировку применять, перестает быть личным делом каждого. Если вы отправляете сообщение для публичного прочтения, то, очевидно, его необходимо унифицировать.
Конечно, поддерживать несколько различных кодировок для конференции довольно глупо, разумно остановится на одной. Исторически - это KOI8-R, пусть она и остается до лучших времен. В конце концов, участие или неучастие в обсуждениях - это также личное дело каждого и его собственная проблема. Хочешь участвовать в существующих телеконференциях - "коифицируйся", не хочешь - создавай свои (на своем сервере и в "своей" кодировке). Есть участники - есть конференции, уйдут участники - пропадут и конференции.
По моему личному мнению, информационная ценность публичных телеконференций довольно низкая, серьезные обсуждения уходят в специализированные списки рассылки, избегая информационного "засорения", оперативную информацию всегда можно почерпнуть в on-line, а поболтать - на chat. "Агрессивные" фидошники, отстаивая свою сеть как альтернативу Интернету, ожидают, порой, ответа на свои послания месяцами, а несовпадение пришедших вопросов и ответов на них, рождает дополнительную путаницу.
Группа участников телеконференций не самая многочисленная в Сети, однако, как показывает опыт, самая влиятельная и… консервативная: "Ну КОИ8 все же было принято использовать. News, скажем, в ней приходится читать. До сих пор. А раз мне что-то приходится читать в КОИ8, все остальные кодировки меня раздражают" (Михаил Исаев, из обсуждения русской кодировки в телеконференции relcom.talk).
Однако и здесь больше вопросов, чем ответов. Больная проблема поддержки русского языка время от времени всплывает и в существующих конференциях, заставляя страсти разгораться с новой силой. Участвуя в этих обсуждениях, не стоит полагаться на мнения отдельных участников: некоторые из них, несмотря на юный возраст, - "махровые" консерваторы, о других складывается впечатление как о не обременяющих себя какой-либо полезной деятельностью болтунах, а всех их, похоже, объединяет чувство принадлежности к некому клану, основным атрибутом которого является приверженность к использованию кодировки KOI8-R. Может, она и необходима-то лишь для этого? Как хорошо почувствовать себя "крутым", установив на своей машине поддержку KOI8-R, и смотреть свысока на тех, кто этого еще не сделал, обзывая их при этом лохами или, по крайней мере, ламерами.
Но все же я выяснил точки зрения достаточно серьезных и известных в этой области людей: Андрея Чернова, разработчика почтовой программы UUPC/@ и инициатора предложения RFC 1489 (Internet Request For Comments), регистрирующего употребление русской кодировки KOI8-R в качестве рекомендательной для любого представления информации в сети, содержащего кириллицу (причем, как следует из заявки, - кириллицу вообще, без учета мнения других кириллических народностей), координатора релкомовских конференций Дмитрия Мартынова, а также других известных мне людей, причастных к становлению и развитию Интернет-технологий в России. Их мнения не во всем совпадают, и, уж конечно, не все они являются сторонниками "драконовских" мер.
Выступления в конференциях никого ни к чему не обязывают, поэтому приходилось проверять и перепроверять информацию, причем, как правило, тут же, не выходя из Интернета. В общем, основная часть сведений почерпнута в результате виртуального обмена. Причем несомненным достоинством последнего является возможность его принудительного отключения в любую минуту. Так как конференции являются публичными и общедоступными, я оставляю за собой право свободно цитировать некоторые мнения, а соображения, высказанные в личной переписке, - с согласия авторов.
Итак, ключевое мнение: "Не было бы стерверов в 1251 - поставили бы виндовозники на своих машинах KOI8-R, никуда бы не делись"(Дмитрий Мартынов). А тем временем Windows-"стерверов" становиться все больше и больше…
Русская кодировка
Для настоящего понимания духа предмета
особенно важно
овладеть определениями.
С. К. Клини, Математическая логика
Что такое кодировка? Это метод компьютерного представления множества различных символов, включающего буквы алфавита, знаки пунктуации, цифры и специальные знаки.
Обсуждая обременительное сосуществование нескольких различных кодировок для представления русских букв и связанные с ним проблемы, озираются чуть ли не на Кирилла и Мефодия. Выпендрились, понимаешь... Забывая, что даже американцы, по общему мнению, "затачивающие" все под себя, до недавнего времени имели по крайней мере две кодировки: EBCDIC (Extended Binary Coded Decimal Interchange Code) и ASCII (American Standard Code for Information Interchange).
EBCDIC-схема издавна применялась фирмой IBM в мэйнфреймах и использовала 8 бит для представления символов. Но американцы решили сэкономить (американский набор символов самый маленький, даже англичанам требуются дополнительный значки, например, для обозначения фунтов стерлингов) и приняли схему ASCII, где для кодирования символов используется только 7 бит из байта. Американцы решили, что для представления печатных символов с лихвой хватит 128 позиций (в самом деле: 27 строчных букв, 27 прописных, 10 цифр, десяток знаков препинания и все), да еще и запас останется.
Были и другие кодировки, и долгое время все они сосуществовали на равных. Но вдруг правительству США "взбрело в голову" поддержать ASCII-кодировку на государственном уровне, и все подравнялись на главного заказчика. А централизованное и плановое советское народное хозяйство даже такой малости не сделало, а наоборот, видимо, в издевательских целях, приняло несколько ГОСТов по кодировкам, а затем и вообще пустило это дело на самотек. Скоро все "мертворожденные" ГОСТы были забыты, и мы сегодня пользуемся тем, что нам "подарили" американские "русификаторы" (национальная принадлежность конкретных русификаторов в данном случае значения не имеет, так как все "живущие" локализации делались с подачи западных фирм или по их "вине").
Таблицы символов Extended ASCII (ISO8859-5, DOS 866, WINDOWS 1251, Macintosh)
Без конца сбиваясь, при луне
Трое лбов считали ребра
мне.
Сбились в третий...
Сбились в пятый раз...
Как все плохо делают у
нас!!!
С. Статин
Расширение таблицы ASCII произошло по требованию европейских стран (причем, опять же, вплоть до правительственного вмешательства). Для представления печатных символов большинства европейских алфавитов пришлось "вернуть" только восьмой бит в байте. Лишний бит - это еще 128 символов, и там смогли разместиться все диакритические знаки национальных алфавитов. Так была создана таблица символов Extended ASCII. Однако уже созданное к тому времени американское программное обеспечение было рассчитано на 7-битную кодировку, и возникло множество проблем, описание которых выходит за рамки данной статьи.
Наш алфавит отличается от латинского полностью, и символов в нем больше (66), поэтому он, как и некоторые другие европейские алфавиты, не уместился в таблицу Еxtended ASCII (ISO 8859-1, или Latin-1, ISO - International Standards Organization, то есть Международная организация по стандартизации). Пришлось придумывать отдельные таблицы на каждый язык, и наша получилась пятой по счету - ISO 8859-5.
Полученный в результате чистый продукт так и не прижился. ISO 8859-5 подкосила и российская компьютерная раздробленность, и разработка IBM - PC, в операционной системе которого Билл Гейтс и Microsoft применили псевдографику (вертикальные и горизонтальные черточки, различные уголки, прямоугольники и т. д.), занявшую места русских букв в таблице ISO 8859-5. Пришлось срочно "распихивать" русские буквы по местам, не занятым псевдографикой. Забавно, что стандартов никто не принимал (точнее, их было несколько, поэтому никто не обращал на них внимание), но проблема утряслась, и в результате русификации MS-DOS появилась "альтернативная" кодировка 866.
Почему вышеупомянутой фирме Microsoft не подошла 866-я для Windows, понятно - отпала необходимость в псевдографике. А вот ISO 8859-5 не подошла, похоже, из принципа делать все самостоятельно (хотя А. Чернов утверждает, что и CP1251, и CP878 (KOI8-R) основываются на стандартах фирмы IBM - и Microsoft тут совершенно ни при чем, CP - Code Page, то есть кодовая страница). Так или иначе, но для "русских" Windows была принята кодировка Windows-1251 (CP1251), самая распространенная сегодня.
Не забыть бы также и пользователей компьютеров Macintosh, которым вообще никто не указ! Для них сделали специальную кодировку, просто так, для праздника, чтобы им жизнь медом не казалась и они бы использовали только "родной" софт.
А ISO 8859-5, чтобы не обиделась, стали величать основной, но ею все равно почти никто не пользуется.
Теперь представим себе российского программиста, создающего информационную систему для своего предприятия. Ему нужна соответствующая кодовая таблица и программа, которая ее поддерживает. Если программа "сильно" американская (не обрабатывает восьмой бит), то он ее модифицирует или пишет свою. В конце концов проблема решается.
Сложнее обстоит дело с коммуникационными программами. Электронная корреспонденция ходит разными, подчас непредсказуемыми путями. И "злобная" американская машина может "обрезать" (обнулить) 8-й бит. Сейчас таких машин практически не осталось (хотя мне сразу же указали на такого "монстра", как CompuServe), во всяком случае, они не являются промежуточными при пересылке.
Однако когда Интернет в России только появился (90-91-й годы), эта возможность была далеко не гипотетическая, а очень даже реальная. Так что следующая кодировка - KOI8-R, использовавшаяся в середине 80-х, когда были еще живы 7-битные терминалы, достаточно хорошо проявила себя и в новом, сетевом применении. Сложилась определенная, довольно консервативная российская сетевая культура, представители которой занимают пока ключевые посты, так что даже массовый наплыв пользователей Microsoft Windows (более 90 процентов клиентов) пока не может ее снести. Кто победит, и победит ли кто вообще - посмотрим. Думаю, что проблема отомрет сама собой (причем, может быть, и вместе со структурой в ее нынешнем виде), и для этого есть все основания. А пока процветает "насильственная коизация".
Таблица символов KOI8-R
Представьте себе письмо, написанное по-русски, отправленное электронной почтой и нарвавшееся по пути на "злобный" американский сервер (а у нас, порой, между соседними домами письма через Америку ходят - провайдеры никак не договорятся), срезающий у всех писем восьмой бит. После такого "обрезания" те буквы, которые были русскими, становятся латинскими. Теми, чей номер в таблице меньше ровно на 128. Значительное число букв нашего алфавита имеет фонетические аналоги в латинском. Например, П и P, Р и R. К тому же есть несколько совпадающих и по написанию. Значит, целесообразно расположить русские буквы таким образом, чтобы они отличались от похожих латинских на 128! Тогда потеря восьмого бита превратит сообщение в некую транслитерацию (состоящую из одной латиницы), смысл которой все-таки можно восстановить и прочитать по-русски. Неприятно, но понятно.
KOI8-R (код обмена информацией, 8 бит) - это и есть такая таблица. И именно она с самого начала применяется для обмена почтой и новостями в России. Первые письма так и ходили на языке "ruglish", том самом фонетическом эквиваленте, когда "здравствуй" выглядит как "zdrawstwuj". Однако все письма читались! А что делать - mnogie do sih por tak pishut. Но сегодня это уже по другим причинам.
Итак, KOI8-R сегодня - сетевая кодировка de facto. Почему? Вышеописанными соображениями уже можно было бы пренебречь. Сегодня некоторые приверженцы ссылаются на описание кодировки в RFC 1489 (Internet Request For Comments), предложенное в июле 1993 года Андреем Черновым, а значит, и "стандартность". Ну и что? В других RFC предлагается и ISO 8859-5 (например, в RFC 1700). Да и вообще, RFC - это рекомендации, как и все в Интернете. А если рекомендации не согласуются с жизнью и причиняют неудобства абсолютному большинству пользователей, то не следует ли принять другие, более удобные рекомендации?
С точки зрения большинства пользователей, безусловный лидер - Windows 1251. Единственный "серьезный" аргумент против нее (за исключением традиции) высказал Д. Мартынов: с позиции программиста 1251-я плоха, потому что буква "я" попадает на место 0xFF, из-за чего некоторые программы на Си, считающие (char)(getchar())==-1 признаком ошибки, ведут себя с этой буквой неадекватно. Но тогда нехороша и KOI8-R, у которой там же "Ъ", и годится только "мертвая" ISO 8859-5.
Кроме того, "безнадзорная" кодировка KOI8-R существует в таких безобразных реализациях, что серьезно встает вопрос о профессионализме при ее использовании. То есть там буква "Е", то нет, то есть псевдографика, то нет. Все существующие шрифты в этой кодировке "кривые" (абы только писалось), и работать с ними неприятно. Предвижу возражения о несостоятельности таких обвинений, но ведь факт пренебрежительного отношения к шрифтам в KOI8-R о чем-то говорит (я нарочно проверил добрый десяток). Не предусмотрены и специальные русские эпистолярные символы: длинное тире и кавычки елочкой. "Разработчики" этих шрифтов явно не подозревали, что минус, знак переноса и тире - разные символы. Так что вряд ли и эта кодировка станет единственной сетевой в России. И задержать ее может только консерватизм сегодняшних серверов-"крестоносцев" (на них все настроено именно под нее) и несовершенство программного обеспечения.
То, что провайдеры утверждают о невозможности что-либо изменить, - враки! В свое время возникла гораздо более серьезная, причем всемирная проблема с IP-адресами (стало не хватать адресов при кодировании принятым тогда способом), а на них вообще все держится. Однако же под давлением общественности пришлось осуществить необходимые реформы. А можно было бы также сказать: "у нас все и так хорошо работает, просто будем давать новые адреса по мере выбытия владельцев старых, а остальные потерпят". Просто, удобно, и не надо ждать, пока все перестроятся.
Появление новых, более демократичных провайдеров и продолжающаяся экспансия Windows-клиентов и серверов может резко изменить положение, превратив вчерашних "диктаторов" в тихую секту, типа "адвентистов седьмого дня".
А существует ли вообще кандидат на единую кодировку? Да, и похоже, его вступления в права осталось ждать недолго, хотя и совсем по другим причинам…
|
Посещение российского сервера http://www.medlux.ru/ за первые полтора месяца текущего года.
Сайт www.medlux.ru показателен еще и тем, что отношения к компьютерной тематике не имеет (наличие лекарств в аптеках Москвы и другая медицинская информация), а обращения к нему происходят в основном из стран СНГ.
|
В итоге получаем:
MS - 93,3%, Unix - 5,1%, Mac - 0,9%, OS/2 - 0,7%.
Нас спасет Unicode
Откуда у меня такой оптимизм относительно использования Unicode? Этот стандарт разрабатывается консорциумом Unicode, куда входят представители таких фирм, как Taligent, Microsoft, Xerox, NeXT Computer, Sybase, и других. Появился он в операционных системах Unix, NeXT, Windows NT, а затем и в Windows 95 и служит для универсального представления символов. Ему не нужны отдельные таблицы, как в ISO 8859-1,2,3,4,5… Символы представляются шестнадцатью битами (двумя байтами), и каждый символ фактически содержит код языка, к которому он принадлежит, что дает возможность выбора языковых и шрифтовых средств исключительно на основе кода символа, а не с помощью дополнительных указаний на кодовую таблицу типа charset: koi8-r. Таким образом, даже если заголовок письма неверен, испорчен или вообще отсутствует, содержание все равно восстанавливается. Другая возможность, решающая в пользу применения Unicode - употребление смешанных языков в корреспонденции, что особенно актуально для нашей многонациональной страны (в конце концов, в Unicode можно включить и все используемые сегодня кодировки). По утерянной традиции русского дворянства все письма положено писать на смеси "французского с нижегородским", а продвинутые смогут цитировать и Лао Цзе в подлиннике. В Unicode можно включить и специальные типографские и оформительские символы, принятые для разных стран. В общем, отличный кандидат на универсальную кодировку (если угодно, с последующим перекодированием у "несознательных" клиентов, ведь никто не собирается отменять "исторические" традиции, сложившиеся в различных операционных системах, а Unicode сам сохранит такое соответствие). Кроме того, поддержку Unicode обеспечивает и Java - модный сегодня язык программирования для Интернета и сетевых приложений.
|
|
И не только для белых
Сидит собака и стучит лапами по клавиатуре.
- Собака,
ты что делаешь?
- Почту пишу.
- А как же они с тобой
переписываются?
- А я им не говорю, что я собака.
Раньше, для того чтобы любой пользователь мог войти в Интернет, ему необходимо было кое-что знать о своем компьютере и грамотно настроить специальную программу (а то и не одну). В общем, каждый счастливый обладатель сетевого доступа чувствовал себя неким гуру. В последнее время, особенно с появлением таких операционных систем, как Windows 95, большинство ожидает от машины, что она сама себя настроит, наладит, договорится с другими машинами, а пользователю останется только получать удовольствие. И это недалеко от истины. Конечно, необходимо признать и существование того, что старожилы называют ламерством, то есть навязчивое желание малообразованных неофитов навязать свою точку зрения на проблему, с которой тот недавно познакомился "на лету". Но таковы реалии сегодняшнего дня, ничего с этим не поделаешь, остается только смириться, предоставив полную свободу пользователю в рамках некой осознанной необходимости. В конце концов процесс так или иначе нормализуется, и все встанет на круги своя. Все необходимые средства сегодня интегрированы в операционные системы, остается лишь прочитать пару страниц руководства, и если бы не русский язык, то думать вообще бы не пришлось. Но, к сожалению, обладание "великим и могучим" не дает закостенеть мозгам и отвлекает людей от их непосредственной деятельности.
Итак, мы имеем несколько кодировок для представления кириллицы. Все они объективно существуют, все используются. Провайдеры желают иметь в Интернете одну русскую сетевую кодировку. Так как и почта, и новости исторически ходили в KOI8-R, им ничего не хочется менять и они готовы распространить это и на другие ресурсы (в том числе и на WWW). Пользователи не желают ничего "подкручивать" и налаживать в своих программах для того, чтобы обмениваться информацией по-русски. По большому счету, правы последние. Слишком дорогую цену им порой приходится платить, перенастраивая программы, работающие с Сетью (а их становится все больше и больше). К тому же клиенты справедливо считают это работой тех, кто им доступ в эту Сеть и предоставляет. Конечно, со временем все установится, каждый найдет своего провайдера, ибо спрос, как известно, рождает и предложение, а клиент всегда прав!
Для тех, кто не хочет ничего налаживать, существуют готовые решения, многие провайдеры предоставляют собственные программы (правда, далеко не всегда лучшие). Например, для DOS есть пакет под названием UUPC (в DOS'овской модификации А. Чернова - UUPC/@). Вы можете его установить, пользоваться только им, только под DOS и "поминать" время от времени господина Чернова. Зато он будет конвертировать отправляемую корреспонденцию в кодировку KOI8-R, приходящую - в альтернативную, соблюдать международные стандарты и думать о российской доле. Вам об этом думать не надо. Строго говоря, протокол UUCP, которым пользуется программа UUPC, не относится к Интернет-протоколам и безнадежно устарел. Для того, чтобы почта дошла до адресата, ее необходимо преобразовать в Интернет-формат, что происходит на сервере провайдера (если, конечно, он поддерживает UUCP).
Основные аргументы в пользу UUPC - его неприхотливость к ресурсам, способность работать на "слабых" компьютерах под DOS, благосклонное отношение к частому пропаданию модемного соединения и простота установки/настройки. Для тех, кто хочет или может себе позволить только электронную почту, UUPC - идеальное решение, аналогов которому нет и скорее всего уже никогда не будет.
Если хочется чего-нибудь покрасивее - поставьте Windows и возьмите Microsoft Internet Mail & News. Они довольно аккуратно сделаны, желающие могут выбрать KOI8-R, и программы сами все перекодируют туда/обратно в CP1251 и проставят правильный charset (а без указания - не перекодируют). Пожалуй, это единственный иностранный продукт, способный корректно работать со всеми российскими "заморочками" и ориентированный на будущее. Поддерживается MIME-стандарт (Multipurpose Internet Mail Extensions), в том числе восьмибитная кодировка, а также кодировки Base64 и Quoted printable. Принятые звуковые и видеофрагменты пакет правильно экспортирует в соответствующие приложения.
Поскольку Internet Explorer, в состав которого входит Internet Mail, является браузером, то он может отправлять послания и в HTML-формате. Господин Чернов, по его утверждению, "заставил" Microsoft приобщиться и к KOI8-R, причем корректно "подкрутить" и ввод форм, и имена кнопочек в Explorer, и при этом ему не удалось его "сломать", как в случае с Netscape, так что для Windows 95 скоро не будет никаких проблем, если конечно сами провайдеры, по доброте душевной, не постараются.
Возможность работы с отложенной доставкой реализована великолепно. Кроме того, Internet Mail позволяет управлять модемным соединением: самостоятельно устанавливает связь, отправляет и получает почту. По окончании приема/передачи модем автоматически отключается. Можно даже составить расписание автоматических сеансов связи.
О программах Microsoft Mail & News я в последнее время слышал только хорошее (дырки латаются очень быстро!), хотя сам ими не пользуюсь. Даже недостаток - не показывают картинок в тексте письма (как это делает Netscape), интерпретируется многими как достоинство (не будете без конца порнографию смотреть). Может быть, слишком простая книжка адресов (невозможно организовать иерархию), и все... Зато нет проблем с русскими буквами! Хочешь так, хочешь этак. Простые, приятные и красивые программы (новый Netscape Communicator 4.0, похоже, смотрел уже на Microsoft, но кроме интерфейса ничего не высмотрел и по-прежнему для российского употребления практически не пригоден).
Таким образом, несмотря на то, что я с момента выпуска и по сей день работаю с программами Netscape, рекомендую пользователям Windows 95 именно Microsoft Mail & News. Да и Internet Explorer становится гораздо лучше. И к тому же работает...
Для любителей трудностей
Всякое изменение тела, будь то болезнь или здоровье, сводится к перемещению веществ в пространстве… но демоны не могут произвести этого движения, так как это доступно только богу. Отсюда ясно, что демоны не могут произвести никакого, по крайней мере фактического телесного изменения и что в силу этого подобные превращения должны быть приписаны какой-либо тайной причине.
"Молот ведьм"
Существует несколько способов обработки передаваемой электронной почты (аналогичные рассуждения применимы и к новостям), а соответственно, и возможностей безнадежно испортить сообщение. Эти способы естественным образом вытекают из того, как организована передача почты. Пользователь взаимодействует с почтовой программой, которая позволяет ему отправлять и принимать письма, организовывать хранение, вести адресные книги и т. д. Можно сказать, что основная функция почтовой программы - предоставить удобный пользовательский интерфейс. Чтобы отправить или получить письмо, почтовая программа обращается к почтовому серверу, который не имеет пользовательского интерфейса, зато владеет тонкостями маршрутизации корреспонденции. Затем напрямую или через промежуточные машины письмо передается другому почтовому серверу, который обслуживает адресата. Тот кладет письмо в персональный почтовый ящик, откуда его забирает почтовая программа получателя.
Предположим, что письма надо перекодировать. По "сложившийся традиции" это может сделать и почтовая программа, и сервер. Первому варианту я уже выказал предпочтение, и с учетом существующей практики ущерб от такого решения минимален.
Перекодировка доставщиком
Съесть не съем, но надкушу каждое…
У провайдеров Интернет-услуг за годы работы "сложилось мнение", что будет гораздо лучше, если программное обеспечение почтовой машины само будет перекодировать почту. Тогда единственное, что нужно сделать пользователю, - отключить шифрование восьмибитных символов (иначе, по понятной причине, никто не сможет потом что-либо восстановить). Подчеркну еще раз, что я активный противник такого подхода и даже многие провайдеры считают его временной мерой.
Отправлением/доставкой почты на сервере занимаются две программы. Первая служит для отправки почты и называется "SMTP-сервер". SMTP (Simple Mail Transfer Protocol) - это протокол передачи писем в Интернете. Служба SMTP и принимает письма, складируя их на почтовой машине. Непосредственно пользователю, по его инициативе, письма передает другая программа - "POP3-сервер" (Post Office Protocol).
Дальше все очевидно: сервер SMTP "заставляют" переводить письма из кодировки отправителя в сетевую кодировку (сегодня это KOI8-R). Сервер же POP3 должен переводить письма из KOI8-R в ту кодировку, которую хочет принимать получатель. В какую только?.. И из какой?..
Откуда и куда конвертировать
Откуда берут информацию о кодировке письма:
- из служебных полей заголовка письма
- из конфигурационных файлов;
- имеют выделенный виртуальный сервер для работы с каждой из кодировок;
- определяют кодировку по содержимому письма.
Первый подход перекладывает ответственность на почтовую программу пользователя. Она должна включить в заголовок письма правильный charset. Это был бы самый правильный подход для какой-нибудь Германии, но только не для России. У нас даже координаторы конференций используют неправильный charset, а потом обвиняют слишком умный софт, который все делает через задницу (читай - соблюдает стандарты), когда у всех остальных (читай - не соблюдающих никаких соглашений, а просто "делающих как я") - все нормально. При всеобщей безответственности и поголовном "обмане" программ и стандартов такое решение приводит к печальным последствиям.
Второй подход примитивен. Администратор почтовой машины раз и навсегда определяет, что клиентская машина с таким-то сетевым именем или адресом работает в кодировке, скажем, Windows 1251. И теперь вся корреспонденция, отправляемая с данной машины, считается представленной только в этой кодировке. А если у машины нет постоянного адреса, как обычно и бывает, а пользователь, соединяясь с провайдером, получает на время каждого сеанса динамический IP-адрес, но все равно обращается к своему почтовому серверу и почтовому ящику, то такое решение не работает. Я уж и не говорю о том, что с этой машины нельзя будет отправлять ничего другого.
Выделенный виртуальный сервер. Давайте запустим на одной почтовой машине три-четыре почтовых сервера одновременно, по одному на каждую кодировку, и каждому серверу присвоим отдельное имя, например: win.mail.access.ru, alt.mail.access.ru, koi.mail.access.ru, iso.mail.access.ru. Предложим пользователям Windows обращаться за своей почтой на сервер win.mail.access.ru, пользователям DOS - на alt.mail.access.ru и т. д. Клиенту достаточно при конфигурации своей почтовой программы правильно указать адрес почтовой машины. Причем в этом случае, разделив уходящий SMTP-поток и приходящий POP3 на разные кодировки, можно получить дополнительную гибкость. Предположим, что Netscape, как было сказано выше, принудительно переводит Windows 1251 в KOI8-R, а обратного процесса не производит. Тогда мы определяем в нем SMTP - KOI, а POP3 - Win, и, таким образом, исходящую корреспонденцию перекодирует Netscape, а входящую - сервер. Можно попробовать и другие цепочки с экзотическими адресатами - вариантов много. Это, на мой взгляд, самое правильное решение (если вообще что-то надо делать). Пользователь все равно должен проставить имя сервера, и не надо считать его таким глупым и не оставлять никакой свободы, как в предыдущем случае. И всегда можно зарезервировать вариант по умолчанию, который ничего не делает, а просто передает, как ему и положено. У меня именно такой провайдер. И я его хвалю не потому, что он мой, - а он мой, потому что так делает.
Идея автоматического определения кодировки при всей кажущейся заманчивости мне совсем не понравилась. Надежно определить, в какой кодировке представлен текст, да еще с нашей грамотностью, по технологии распознавания сомнительно. Конечно, такой программе достаточно лишь научиться отличать русский язык от абракадабры. А если мне вздумается писать по-татарски! Причем некоторые провайдеры высказывают мнение, что нераспознанные письма не следует отправлять адресату! Ну и как их назвать после этого? Отправлять по почте любую абракадабру - конституционное право пользователей.
Универсального решения сегодня в любом случае не существует. Даже тогда, когда пытаешься предусмотреть все. Из приведенного в конференции примера Григория Наумовца: "Недавно мне было нужно разослать одно сообщение на кириллице через mailing list нескольким десяткам людей с разными серверами (одни перекодируют КОИ8<->1251, другие нет) и мэйлерами (от Eudor'ы до Bmail'а). Думаю, надо сделать так, чтобы кириллица у всех была сразу же видна без переключения фонтов или кодировок. Поэтому включаю в письмо четыре куска: (1) English, (2) КОИ8, (3) 1251 и (4) такой, который должен превратиться в КОИ8 в случае перекодировки POP-сервером или софтом получателя по таблице КОИ8->1251. Ну и? Все равно от одного из Dmail-овских адресатов пришел ответ: "не могу прочесть письмо, так как в нем нет строки begin" (???). Оказывается, один серверок по дороге оказался еще умнее меня и зачем-то закатал мое письмо в Base64".
World Wide Web
"Всемирная паутина" живет по своим законам. Вопросы верстки в HTML уже давно раздражают профессионалов, для них это два шага назад. Среди попыток преодолеть эту проблему имеются и такие, которые походя решают и нашу "русскую" задачу.
Что мы имеем сегодня? Идиотизм положения с кодировками здесь налицо - классический русский камень на распутье у каждого сайта: "выберите вашу кодировку". Это совершенно ненормальная ситуация. Приходится дублировать (растраивать и учетверять) содержимое, повышая вероятность ошибок и ляпов, причем такое решение рождает больше вопросов, чем ответов. Как поступать, например, с заполнением форм (интерактивных опросных листов) или server-parsed HTML (с макроподстановками) и др.?Из современных альтернативных решений можно привести два:
- перекодировка базовой страницы "на лету" при помощи выбранного CGI-script (то есть программы, выполняющейся на сервере);
- автоматическое определение требуемой кодировки по запросу.
В общем, ни одно из них не удовлетворительно, хотя и удобнее простого дублирования. Первое грешит некоторыми неудобствами в использовании и увеличением времени доступа. Второе не всегда выполнимо, так как основывается на том, что локальный браузер передает на сервер некоторую информацию о себе, включающую иногда и тип платформы/операционной системы, что не всегда верно и не гарантирует наличия у пользователя шрифтов в нужной кодировке.
Следует принимать во внимание, что количество пользователей, работающих исключительно с электронной почтой, будет неуклонно уменьшаться, а число on-line-пользователей будет постоянно расти. И таким пользователям потребуются дополнительные услуги и, естественно, лучшее качество отображения и разнообразный сервис. Нынешний пользователь российской сети - это в основном программист (около трех четвертей, по некоторым опросам), а они, как известно, неприхотливые, грязные, ленивые и неряшливые. До тех пор, пока в "паутину" не попадут гуманитарии (в том числе и полиграфисты, художники и дизайнеры), сдвигов в лучшую сторону не будет.
Поэтому будем ориентироваться, как всегда, на запад (и преимущественно - "дикий", то есть американский), где это уже случилось (а по некоторым тенденциям, и у нас не за горами). Такому пользователю вряд ли объяснишь про "обрезание" восьмого бита, а вот неряшливую верстку, ошибки и "кривые" шрифты он сразу заметит. Где выход?Их пока два:
- верстка и сохранение Web-страниц в PDF-формате (Adobe Acrobat);
- использование Web-шрифтов, отправляемых вместе с документом и CSS-расширений HTML.
Про PDF-формат особенно распространятся не буду, хотя, с моей точки зрения, это лучший выход (не зависящий ни от кодировки и языка, ни от платформы и операционной системы). К сожалению, фирма Adobe "проспала" волну Интернета, и хотя Acrobat-файлы поддерживаются многими Web-браузерами (обычно существует соответствующий plug-in), они не становятся стандартом.
CSS-расширения напоминают древние стадии развития языков программирования и средств разработки (как и в целом Интернет, при всей новизне своих технологий, постоянно напоминает что-то архаичное - то в одной своей части, то в другой). Желающие могут ознакомиться с ними на W3, а нам это показалось временной мерой (а может быть, и "мертворожденной").
Web-шрифты на страже русской язычности
Итак, в Интернет пришли гуманитарии. HTML-документы эволюционируют от простых <HR> и 3D-кнопок к профессиональным, хорошо оформленным страничкам, цель которых - привлечь и удержать посетителей-непрограммистов. Одним из важнейших недостатков нынешних средств разработки Web-страниц, с точки зрения полиграфистов, явилось отсутствие возможности жесткой установки шрифта, вследствие чего дизайнер не может быть уверен в том, что клиент увидит на экране именно то, что им было задумано.
Наилучшим решением, гарантирующим правильность и качество шрифтов, считается сегодня встраивание их непосредственно в Web-документы и передача пользователю (обычно только для просмотра). Предлагается использовать оба основных типа шрифтов: TrueType и PostScript. Шрифты TrueType при надлежащем хинтовании позволяют получить более качественное изображение на экране, а PostScript-шрифты, будучи производственным стандартом в издательском деле, обеспечивают качественную печать.
Использование встраиваемых шрифтов сдерживается лишь увеличением размера HTML-файла и, как следствие, продолжительностью передачи при сохранении достойного качества воспроизведения.
До последнего времени указывать конкретные шрифты в HTML было практически невозможно. Дизайнер выбирал шрифт, включал его в определение Web-страницы, а пользователь, не имеющий такого шрифта на своей машине, лицезрел тот, который автоматически (по умолчанию) подставлял браузер (в нашем, русском случае, браузер мог подставить шрифт, в котором вообще нет русских букв). Даже сами пользователи не всегда могли изменить умолчания, заложенные в браузерах, и результат еще дальше уходил от проектирования (если вообще сохранялся). Многие, конечно, использовали графическое представление текста, но это приводило к довольно громоздким файлам, которые к тому же не читались текстовыми браузерами (такими, например, как Lynx). При встраивании шрифта в документ эти проблемы устраняются. Пользователь увидит именно те шрифты, которые были заложены при проектировании, даже если они не установлены на его компьютере. Ведущие изготовители браузеров объявили о программной поддержке встроенных шрифтов.
Другое преимущество встроенных шрифтов - достигаемое качество при отображении и печати (это особенно актуально для больших документов, которые трудно читать с экрана). При посылке шрифта вместе с документом в него включается вся информация о символах, включая хинтование и другие средства шрифта, применяемые его создателями для улучшения качества отображения и печати. Причем планируется передавать только те символы, которые были использованы в документе (подмножество шрифта), что обеспечит дополнительную экономию.
Дальнейшее уменьшение размеров передаваемых файлов может быть обеспечено дополнительной компрессией (сжатием и по возможности без потерь). По мере того как в подготовке публикаций на Web участвуют все более творческие люди, к тому же не понимающие коммуникационных проблем, размеры файлов будут постоянно расти.
Для того чтобы использовать подмножество шрифта, необходимо, чтобы приложения, используемые при создании документа, поддерживали этот метод. Microsoft Office 97 имеет такую возможность, позволяет встраивать шрифты в документ, проверять документ на вхождение в него шрифтов и ассоциировать зашифрованную версию шрифта с документом. Некоторые шрифты не будут допускать встраивание в документ, и на них указанная возможность не будет распространяться. Когда такой документ с легально встроенными шрифтами придет по назначению, они будут расшифрованы.
Программные средства сжатия шрифтов основываются на технологиях Agfa MicroType Express и Adobe CFF, обеспечивающих сжатие без потери качества. MicroType Express работает со шрифтами TrueType и PostScript, а CFF только со шрифтами PostScript. Сжатие средствами Agfa полностью сохраняет информацию оригинала и в сочетании с методом передачи подмножества шрифта обеспечивает 90-процентное сжатие для шрифтов на основе латинской графики и до 99 процентов - для китайского, корейского и "нам" подобных. В отличие от методов "сжатия с потерями", применяемыми при хранении изображений и фильмов, технология MicroType Express сохраняет полное соответствие исходных литер и их вида на страницах Интернета, поддерживая декомпрессию "на лету". При этом сохраняются и все хинты, что обеспечивает высокое качество отображения и печати. Microsoft Internet Explorer обязался поддерживать эти технологии.
Open Type
Компании Microsoft и Adobe совместно работают над новым универсальным шрифтовым форматом под названием Open Type, сочетающим в себе TrueType и PostScript. Частью создаваемой технологии является и сжатие шрифтов. В Open Type будет усовершенствовано управление существующими шрифтами и создан формат, который обеспечит работу с новым поколением компьютерных шрифтов, рассчитанных на Web-использование. Существенная часть этой работы посвящена кросс-лицензированию шрифтов, а также технологии, которая обеспечит работу обоих форматов с разными платформами. Формат Open Type обеспечит встраивание шрифтов TrueType или PostScript в документ и простую процедуру инсталляции и использования проектировщиками и пользователями Web-страниц. Microsoft объявила о намерении сделать шрифты Open Type стандартным элементом своей базовой операционной системы. Adobe собирается поддерживать Open Type в новых версиях своих программных продуктов для графических, издательских и Интернет-приложений.
Перспектива превращения Open Type в новую архитектуру шрифтов для издательской деятельности во "Всемирной паутине" символизирует окончание ведущейся сейчас "шрифтовой войны". Поскольку такие лидеры в деле информационных технологий, как Agfa, Adobe и Microsoft обязались улучшить качество передачи текста на Интернете вообще и WWW в частности, новая технология использования подмножеств, сжатия и встраивания шрифтов в HTML-документы имеет несомненное будущее. Способность сохранять информацию, содержащуюся в шрифте, и качественно ее воспроизводить обеспечит Web-страницы гарантированным соблюдением стиля и дизайна, а нас, "русскоговорящих", освободит от обязанности поддерживать кодировки на все случаи нашей излишне разнообразной жизни.
Тенденции же перевода и передачи электронной корреспонденции в HTML-формате сведут на нет и все "почтовые" проблемы. Таким образом, можно с уверенностью заявить: владельцы серверов - руки прочь от всевозможных перекодировок, ваш "скорбный труд" все равно пропадет всуе!
По "Всемирной паутине", не снимая тапочек
|
Ведущие разработчики программного обеспечения сосредотачивают свои усилия в области WWW-средств и мультимедиа, ясно показывая нам, чего следует ожидать в этой области в недалеком будущем.
Однако в результате непрерывной "войны браузеров" потери в первую очередь несет потребитель. Увеличиваются требования к производительности компьютеров (главным образом - к памяти), усложняются программы, появляется новое оборудование. Все эти средства предназначаются в основном "техноэлите". Таким образом, теряется огромное количество потенциальных пользователей. А нынешним клиентам Сети при каждом обращении необходимо перерабатывать "тонны угля", чтобы в результате получить мифический "алмаз", доступный далеко не каждому.
Телевизионный Web-терминал (WebTV), напротив, - такое же простое устройство, как видеомагнитофон или телефонный автоответчик. На обычном пульте управления добавляется только одна кнопка - WEB. Я не упомянул бы о приставках WebTV, если бы не обнаружил их присутствие уже и в России.
Применение Web-телевизоров сегодня сдерживается в основном неразвитой инфраструктурой сети и слабыми средствами коммуникаций (особенно в нашей стране). Для массовой передачи информации требуется принципиально иная пропускная способность каналов связи, современное оборудование и простое в обращении программное обеспечение. Однако вспомните: еще год назад перегружать Web-странички большим количеством картинок считалось дурным тоном и неуважением к пользователю, а теперь скорость связи даже по обычным линиям возросла настолько, что стали возможны переговоры голосом по Интернету, и телефонные компании начинают серьезно беспокоиться за свое будущее.
Возможно, главным подходом к использованию WebTV в ближайшее время будет передача текстовой информации, конференций (например, по "мыльным операм"), одиночных изображений и фрагментов видео с отсроченным просмотром.
Реальное использование WebTV во всем мире ограничивается сегодня немногими приложениями: новостями по требованию (включая погоду и спортивные результаты), обозрением кинофильмов, передач и телевизионных программ, а также коммерческими заказами. Успех будет зависеть, вероятно, от того, насколько просто зрители будут получать такую информацию и насколько удобным будет обращение к Интернет-ресурсам. Большинство людей были бы счастливы пользоваться телевизором вместо компьютера, если цена на дополнительное оборудование не окажется слишком высокой (сейчас она составляет около 300-400 долларов за устройство), а работа будет достаточно удобной. Электронная почта - главная возможность, которая выведет WebTV на массовый рынок в ближайшем будущем.
В любом случае, WebTV - это другая среда использования Интернета, поскольку основными "пользователями" телевизоров являются бабушки, дедушки, дети и домохозяйки. Придется приспосабливаться и к их нуждам.
Каким образом, господа провайдеры, вы объясните им необходимость KOI8-R? - О.Т.
|