Удобно, знаете ли, открыть файлик, набранный на древнем-древнем компьютере и без танцев с бубном прочитать его содержимое. Я говорю не про Windows 98 и даже не про DOS, а про что-то еще более древнее и не совместимое с IBM PC. А ведь мы даже не задумываемся, что в реальности это чудо чудесное. И вот, прочитав один такой документик, я и решил написать сей небольшой опус.
Помните историю в одной из предыдущих графоманий тыц1 тыц2 о злоключениях некоего профессора? Как и положено, история имеет счастливый конец, где на помощь ученому приходят мини-компьюетры и CP/M. Мною не были упомяты пять важных букв: ASCII. Да, эта древняя кодировка (еще из 60-х) тесно переплетается с CP/M, но в то же время абсолютно независима. Изначально она имела лишь 7-битное представление: латынские буквы, цифры, пунктуация, управляющие символы. Управляющие символы, что за ересь? Да-да, символы для управления кареткой принтера. Например, символ 0x08, аналог Backspace. Хотите набрать на принтере "ê": пишите коды: 0x65, 0x08, 0x5E. 0x65 - это обычная латынская "e", которая вылезет на принтере, при этом каретка передвинется на одну позицию вправо. 0x08 вернет ее назад, на уже напечатанную "e". А 0x5E - это "^" - шапочка, или по-научному, циркумфлекс, прости Господи, который напечатается поверх "e" и получится "ê". А кто сказал, что в 60-х был подход WYSIWYG (What You See Is What You Get)?
Но что-то я отвлекся. Вобщем, кодировка была хороша, а немного позже стала еще лучше. 8-й бит, служивший для технической информации (в основном, сигналы ошибок) скоро перестал использоваться по историческому назначению, и кодировку расширили до 256-ти символов. Теперь в легкочитаемом формате (почти WYSIWYG) вы могли видеть и шапочки над буквами, и всякие умлауты, и математическую хрень (да кому нужен символ под одну четвертую?!), но главное - песвдографику! Набор черточек и блочков позволявший круто оформить текст в таблицу или даже нарисовать картинку. Но все равно, считалось, что первые 128 символов - стандарт, а следующие - это опциональное расширение, например для локализаций.
Локализация... Как много в этом слове для сердца русского слилось. Но началось все не с "Фаргуса", и даже не с Taralej & JaboCrack. Берите выше - АН СССР. DOS в 80-х годах, хоть и был нам не положен (гуглите CoCom), но все же покорил советские просторы. Нужно было его обязательно русЕфицировать, для чего отводились расширенные 128 символов. В АН подошли к процессу творчески, и создали аж две русификации: основную и альтернативную кодировки (а еще была одна забытая от МС: CP855). Вобще, я просто-таки требую прочтения этой незабвенной статьи, пока сайт еще не грохнули: 15 years of Russian MS-DOS 4.01. Но вернемся к нашей истории. Чем же отличались основная и альтернативная кодировка. В основной, все кириличные буквы шли в ряд, согласно алфавиту. Просто идиллия для программитса: и перебрать все в одном цикле легко, и определить символ-букву за одно сравнение, и т.д. Но одна мелочь мозолила глаза: символы псевдографики пришлось подвинуть. Стало быть, все таблицы из зарубежных документов "поедут". Ну и шут с ними, с таблицами, но все же, если очень приспичит, то можно загрузить альтернативную кодировку, где псведографика - на месте, но между "п" и "р" есть разрыв. Так думали в АН, но реальность оказалась обратной. Не, ну дейстивтельно, вы хотели бы работать в любимом Нортоне как-то так:
![]()
(В реальности - это Волков под КОИ8, но повертье, Нортон под "основной" будет еще более удручающим)
То-то же. Когда МС решили официально русифицировать DOS 4.01, был проведен опрос с интересными результатами: альтернативной кодировкой пользовались 85%, основной - 7%. Как-то неправильно кодировки названы, не? Вобщем, альтернативная кодировка, за особенные успехи в поддержании совместимости, была удостоена своей кодовой страницы от МС: CP866, и кучи наследников для других языков ex-USSR.
Но в двери уже стукал 90-й год, с Windows 3.0 и необходимостью как-то улучшить процесс локализации. 256 символов, конечно, хорошо, но мало. Пойдем самым простым путем, добавим еще один байт, и получим 65 тыс символов, вот раздолье-то. И обзавем это все Unicode. Сказано - сделано. Но вот беда, разработчики из консорциума прошлись по тем же граблям, что и их коллеги из АН СССР. А ведь еще Маяковский говорил: "на совместимость шуток не скаль", ну или я что-то перепутал, не важно. Вобщем, такой милый сердцу документик из 80-х больше не читался в обычном Unicode-редакторе. Да и Unicode документик тоже не особо читался по нажатию F3 в Нортоне. Пришлось лепить костыль. Предыдущую версию обозвали UTF-16, а в альтернативу ему создали UTF-8. Всем хорош для программиста был UTF-16: строго два байта на символ (это уже потом его "доработали"). Легко и текст выводить, и позицию символа опередлить, и код символа по позиции: не жизнь, а малина. А тут родилась, эта "отрыжка", UTF-8, которая кодирует то одним байтом, то двумя, то тремя, а то и четырмя (а теперь уже и шестью). Вот попробуй найти в потоке байтов нужное место, чтобы поредактировать, скажем 100-й символ! пока первые 100 не распознаешь - хрен найдешь! Ужас ужасный. Одно лишь преимущество: 128 первых символов из древнего ASCII совпадают. А теперь внимание, вопрос! Как Вы думаете сколько процентов пользователей используют UTF-8 и сколько UTF-16 и его идейное продолжение, UTF-32? Вот то-то. И как бы не плакались ленивые программисты, мол из-за теневого правительства Земли выживают только самые неудобные решения, но пользователя не обманешь. Пользователь, он сердцем видит. Хотя, иногда даже не понимает, насколько ему повезло.
Вот и я сижу сейчас за документиком, которому уже далеко за 30 лет, и читаю его в Notepad-е. Разве не чудо?
UPDATE
Еще одна довольно веселая история случилась в СССР, еще до массового распространения DOS и 8-мибитного ASCII. Вопрос стоял о руссификации 7-мибитной кодировки, что было гараздо труднее. Тут уже приходлось жертвовать не только порядком букв, и даже не псевдографикой, а латиницей. Чтобы хоть как-то сохранить читаемость зарубежных текстов, было придумано остроумное решение: ставить символы не в порядке русского алфавита, а подбирая букву-аналог латинской. Почти что транслитерация. Получилось настолько мило, что даже Лурк не обошел эту тему стороной: Инжалид дежице. Ну, зато "error", читался как "еррор"; "disk", как "диск", классно ж!
-
Скрыть объявление
Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.
-
Скрыть объявлениеЕсли Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.
Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
- Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
- Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
- Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
- Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
С уважением, администрация форума Old-Games.RU
Комментарии
Сортировать комментарии по