|
ACNews
#12
07 октября 2002 |
|
Docs - шифрование и дешифровка писем.

▄▄▄ ▄▄▄▄ ▄▄▄▄ ▄▄▄▄
■▄░ ▓ ▓ ▓ ▓ ▓ ▀ ▓▄▄▄ ▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░
■▀ ░▄▄▒ ░▄▄░ ░▄▄░ ▄▄▄░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀
меня давно подмывало встроить хотя бы в один из плагинов хоть
чуточку интеллекта, ну ой не хочется самому исправлять буквы
после конвертации очередного письма из очередной инетовской ко-
дировки!!! сколько их там, этих кодировок? чёрт знает. некоторые
пишут в транслите, но хорошо ли это, особенно если учесть, что
законы замены букв у каждого индивидуума свои и оригинальные?
(я проверял :)) думаете, легко научить программу расшифровывать
этот мусор из букв, скрывающий опечатки владельца?;) я хотел
сделать умный конвертор с хитрой системой правил, но не сегодня
я напишу его и не сегодня опубликую эти правила вам :)
сегодня напишу о проблемах кодировки "BUG", которая взялась из
ниоткуда и портит половину писем в моём ящике...
BUG: я не могу нарисовать вам таблицу символов. даже неполную! я
её просто не составлял :) плагин написан методом научного тыка,
пока текст не стал превращаться в нечто осмысленное,я же и в де-
тстве в такие игры играл, например...
-------------------------- шифровка ----------------------------
ну, кто в детстве не зашифровывал послания? когда послание боль-
шое, а каждой букве однозначно соответствует символ, достаточно
частотного анализа,чтобы разгадать смысл текста. а если при шиф-
ровании уничтожается часть информации?
вы иностранные телефоны с буквами видели? на каждой цифре - по
несколько букв, но размещены они неоптимально, все группами по
3, за исключением двух отдельных групп... послание, напечатанное
на телефоне цифрами, однозначно расшифровать нелегко...
а я в детстве придумал размещение русских букв по цифрам, хоть и
тоже с сохранением алфавитного порядка, но с более надёжным де-
кодированием - почти любое слово (! даже не фраза !) решается
единственным образом и чуть ли не алгоритмически :)
1 2 3 4 5 6 7 8 9 0
а в её з к о р у х ъыь
б г ж ий л п с ф цч э
д мн т шщ ю
я
что интересно, и само это размещение букв закономерно, попробуй-
те-ка отыскать эту закономерность :)
----------------------------------------------------------------
вот и в нашей кодировке не всё ладно с однозначным восстановле-
нием информации. потеряна всего одна буква, зато какая...
правило: в FIDO буква с кодом #8d существовать не может, и хо-
чешь не хочешь, а превратится либо в латинскую H, либо в перенос
строки...
уточнение: в CP866 #8d - русская Н, в Win1251 - не используется,
в KOI-8R - не используется, в ISO - псевдографический символ, в
BUG - русская о.
следствие: кодировка BUG превращает русскую о в H, причём разли-
чить, где было H, а где о - однозначно нельзя.
составим таблицу, где по вертикали отложим все варианты символа
СЛЕВА от непонятной буквы H, а по горизонтали - все варианты си-
мвола СПРАВА от неё, в клеточки впишем самое логичное в данном
случае значение буквы H.
(NaL - not a letter)
┌──────┬──────────────────────────────┐
│после│ а-я А-Я a-z A-Z H NaL │
│до │ │
├──────┼──────────────────────────────┤
│ а-я │ о ??? ??? ??? о о │
│ А-Я │ о Нрус ??? ??? Нрус? о? │
│ a-z │ ??? ??? H ??? ??? ??? │
│ A-Z │ ??? ??? H H H H │
│ H │ о Нрус H H о о? │
│ NaL │ о? Нрус H H Нрус? о? │
└──────┴──────────────────────────────┘
видите, сколько неопределённых и неоднозначных вариантов? поэто-
му конвертит, как конвертит, плохо, то есть :(
может быть, стоит написать плагин, ищущий и заменяющий латинские
H и p на русские там, где надо?
кстати, передаю благодарность Алексу Никифорову, который прислал
мне в кодировке BUG обширный текст Некромансера, что дало возмо-
жность более качественной настройки и тестирования плагина :
Другие статьи номера:
Похожие статьи:
В этот день... 13 ноября