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 обширный текст Некромансера, что дало возмо- жность более качественной настройки и тестирования плагина :
Другие статьи номера:
Похожие статьи:
Железо - ZX BUS - Шина на спектруме: Кажущаяся простота синклеровского железа
чрезвычайно обманчива.
В этот день... 21 ноября