Alek�ei Matiu�hkin

сделано с умом



UTF (Ugly To Follow)

Friday, 21 Sep 2001 Tags: 2001tech

26+26+10+[.|,|(|)|:|;] ‹ 127

Компьютеры придумали в Штатах. Эй, не спешите затевать теософские споры и подвергать меня заслуженному остракизму. Ведь даже если бы их придумали в пальмовых зарослях острова Борнео, стандартизацией занимались бы лучшие умы современности. А они — как раз живут в Штатах.

В Штатах говорят по-английски. Я ничего не имею против этогооптимального в изучении языка; мне импонируют его легковесность, быстрота и пассивная склонность к внутренней рифме. И даже сам факт использования латинского алфавита без ухищрений мне не претит. В конце концов, в греческом букв и того меньше — на целых пять штук, а Гомер без видимого напряжения управлялся аж с гекзаметром.

Разумеется, когда встал вопрос проектирования систем управления компьютерами, самым уязвимым звеном, этим,да позволят мне пуристы от языкознания употребить заморское словцо, баттлнеком — был размер данных. Печально известная своей раздутостью проблема Вау!-2-Кило! вросла корнями в те времена, когда каждая пара байтов была на счету. И так же, как гуру от КОБОЛа, ничтоже сумняшеся, забили болт на неотвратимость наступления XXI века, проектировщики интерфейсов не учли тот малоизвестный факт, что на земном шаре, кроме Америки,есть еще Европа и даже — страшно подумать — Азия. Они прикинули, что весь алфавит (а в Штатах — ага — один алфавит) — легко уместится в 127 символов, и даже останется место на управляющие символы и знаки пунктуации. Так появилась семибитная кодировка ASCII.

Вскорости принялись роптать европейцы. Скрепя сердце, и не очень понимая смысла слов умляут и кириллица, рачительные до байтиков производители операционных систем стали поддерживать альтернативные кодировки — восьмибитные ASCII, в которых еще 127 символов были выделены на нужды странных европейских закорючек. Однако, большинство почтовых серверов находилось в Штатах, многие — на старых компьютерах. Верхний бит в письмах, проходивших через такие сервера, — отрезался нещадно, превращая послания на западноевропейских языках — в игру «угадай букву» (на местах умляутов). Послания на русском, очевидно, превращались в игру «играл, но не угадал ни одного слова».

Именно этому времени мы обязаны самым красивым решением в области дизайна. Не побоюсь назвать его гениальным. Кодировка KOI-8 позволяла респонденту прочесть даже письмо, прошедшее через корежащий проамериканский сервер. После кастрации на бит каждая русская буква этой кодировки превращалась в соответствующую ей букву латинского алфавита. До сих пор можно иногда получить от какого-нибудь криворукого литературоведа из Штатов письмо, написанное как-бы транслитом, но практически полностью — в верхнем регистре. Это и есть KOI-8, с отрезанным верхним битом.

Страшно и подумать, как управлялись с электронными письмами в те времена на Востоке, — это дело настолько тонкое, что останется за пределами данной статьи.

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

Соответственно, каждый промышленный сайт (я имею в виду как коммерческие,так и некоммерческие крупные проекты) вынужден поддерживать все это великолепное разнообразие кодировок. HTML-код превращается в малочитаемую смесь текста и <тегов>. Элементарная расстановка кавычек — в увлекательный квест.

Ну ладно, кто виноват — ясно (и, кажется, они уже летят к нам). Но что же делать?!

Разные кодировки

Никогда не забуду, как я пытался выполнить свой первый запрос с незнакомой UNIX-системы к поисковой машине и упирался глазами в какую-то абракадабру без признаков соответствия набранному тексту.

В нашей жизни — это повседневность. Представим себе следующую гипотетическую ситуацию. Вася Пупкин искал что-то в Яндексе. Нашел. И решил поделиться ссылкой с вашим покорным слугой. В результате, я получил письмо с умопомрачительной длины адресом. Щелкнул по ссылке. И увидел суповой набор из букв с диакритической приправой.

Давайте разберемся, что же происходит. Вот идентификационная строка моего браузера: Mozilla/5.0 (compatible; Konqueror/3.1; Linux; i686; , ru_RU.UTF-8, ru_RU, ru). В последней её части, настройки языка прописаны настолько ясно, что только ребенок (и Яндекс) не разберется. Так в чем же дело?

А дело — вот в чем. Меня распознали как «Человека из --Кемеро-- Linux». И, разумеется, решили, что я люблю KOI-8. Результат — налицо.

Каждый раз, когда мне приходится заполнять какую-нибудь форму, у меня появляется ощущение игрока в русскую рулетку. Потому что я не в курсе, какая кодировка была выбрана мастером, создавшим сайт. И если я ошибусь в догадках — мне скажут: «УЪбКЕ ХаРЯ». А я буду кусать локти в гневе от того, что мне некому даже ответить: «Да и сам-то лицом не вышел!».

Простое решение — Unicode

Однако же, есть простое и ясное решение. Имя ему — Unicode/UTF-8. Никаких проблем с поисковыми запросами типа «bloody+blöd+блядский». Никаких заморочек с кавычками, греческими буквами и прочими иероглифами. Все для потребителя. И — лично мне — остается неясным, почему все так упорно цепляются за однобайтных монстров.

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

Чтобы не донимать всех вопросами при посещении каждого сайта, во время установки браузера задается (или не задается) вопрос следующего содержания: «Какой язык предпочитаете?». Ответ пользователя (или значение по умолчанию) — отсылается в идентификационной строке браузера на сайт. И все сайты, которые умеют разговаривать на этом языке, и которые написаны не студентами высшей школы милиции, говорят с посетителем на выбранном языке.

Если пользователь выставил русский в состоянии аффекта, а теперь хочет все читать по-арабски, дело поправимо.

Нужно выбрать в меню (в разных браузерах в разных подменю, но за время перекура можно разыскать) опцию (сюрприз!) «Язык», и, пользуясь интуицией и здравым смыслом, определить предпочтения. Используется правило вытеснения: если наиболее предпочитаемый язык недоступен, будет использован следующий по списку, и т.д.

Внимание: Если сайт поддерживает только катокану, с помощью этой опции нельзя заставить его отображаться клинописью.

Эх, свой бы сайт тоже неплохо бы под Unicode перевести!

Если вы все прочитали, но ничего не поняли, вы заслуживаете того, чтобы вас преследовало ощущение, будто за вами следят и над вами глумятся.


  ¦