- Ююк
-
UUE (англ. Uuencode) — метод представления двоичных данных в текстовой форме, пригодной для передачи через средства, предназначенные только для передачи текстов (например, через e-mail, FTN, транспортное кодирование).
Название происходит от расшифровки названия программ uuencode/uudecode: Unix-To-Unix encoding (decoding). В дальнейшем UUE в интернет-среде (почта, ньюсгруппы) был заменён на Фидонет.
Юю́ки — жаргонное наименование UUE-кодов в Фидонете.
Содержание
Описание формата
UUE данные начинаются со строки
begin mode file
, где mode — Unix-права доступа к файлу в восьмиричной системе счисления (для DOS/Windows приложений это число всегда 644), а file — имя исходного файла.При кодировании из файла берутся данные по три байта (в случае, если осталось меньше 3 байт, недостающие заменяются нулями). 24 бита, образующие эти три байта, делятся на четыре группы по 6 бит. Каждая шестибитная группа интерпретируется как число (от 0 до 26 − 1 = 63), к которому добавляется 32. Получившееся число в диапазоне от 32 до 95 трактуется как код символа в
Каждая группа из 60 символов (соответствует 45 байтам исходного файла) используется для создания отдельной строки. В начале строки указывается количество закодированных символов в строке (во всех строках, кроме последней это число 45, то есть символ 'M'). Каждая строка завершается символом перевода строки (\n или \n\r в зависимости от платформы).
После окончания данных кодируемого файла помещается строка, содержащая единственный пробел (и перевод строки), и строка с текстом «end».
Иногда в конце строки данных добавляют «пустые символы», обычно символ ` (младшие 6 битов которого равны нулю) для предотвращения повреждения строк некоторыми почтовыми программами.
Пример кодирования
Пример кодирования английского слова Cat.
Исходные символы C
a
t
ASCII коды (десятич.) 67 97 116 ASCII (двоичн.) 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 0 Новые десятичные значения 16 54 5 52 +32 48 86 37 84 Символы UUE 0
V
%
T
Итоговый результат (закодировано слово Cat):
begin 644 cat.txt #0V%T ` end
Таблица используемых символов UUE
Символ десятчиный
ASCII-кодДвоичный код Символ десятчиный
ASCII-кодДвоичный код (пробел) 32 000 000 @ 64 100 000 ! 33 000 001 A 65 100 001 " 34 000 010 B 66 100 010 # 35 000 011 C 67 100 011 $ 36 000 100 D 68 100 100 % 37 000 101 E 69 100 101 & 38 000 110 F 70 100 110 ' 39 000 111 G 71 100 111 ( 40 001 000 H 72 101 000 ) 41 001 001 I 73 101 001 * 42 001 010 J 74 101 010 + 43 001 011 K 75 101 011 , 44 001 100 L 76 101 100 - 45 001 101 M 77 101 101 . 46 001 110 N 78 101 110 / 47 001 111 O 79 101 111 0 48 010 000 P 80 110 000 1 49 010 001 Q 81 110 001 2 50 010 010 R 82 110 010 3 51 010 011 S 83 110 011 4 52 010 100 T 84 110 100 5 53 010 101 U 85 110 101 6 54 010 110 V 86 110 110 7 55 010 111 W 87 110 111 8 56 011 000 X 88 111 000 9 57 011 001 Y 89 111 001 : 58 011 010 Z 90 111 010 ; 59 011 011 [ 91 111 011 < 60 011 100 \ 92 111 100 = 61 011 101 ] 93 111 101 > 62 011 110 ^ 94 111 110 ? 63 011 111 _ 95 111 111 ` 96 (1) 000 000 Недостатки
- За счёт использования только 6 битов из 8, потери при кодировании в UUE составляют 33 % (файл размером 1000 Кб займёт 1333 Кб в UUE).
- Несмотря на узкий диапазон используемых символов, возникают проблемы при передаче UUE через старые компьютеры, использующие не ASCII кодировку (например,
Особенности использования UUE в Фидонете
UUE в Фидонете является стандартом де-факто для передачи двоичных данных. Это объясняется тем, что некоторые узлы отказывались передавать «приложенные» файлы (письма с флагом Att), что обеспечило UUE популярность в качестве альтернативы. В качестве дальнейших средств борьбы с передачей двоичных данных на некоторых узлах настраивали мейлеры и тоссеры на отказ в передаче и тех сообщений, которые содержат UUE.[1]
Для обеспечения совместимости со старым программным обеспечением[2] размер письма во многих эхоконференциях до 2004‑2005 года ограничивался величиною, например, 32 кБ. С учётом служебной информации, добавляемой при распространении почты по Фидонету, письму не рекомендовалось превосходить размер 500 строк (~22 кБ оригинального файла). Файлы большего размера передаются в нескольких письмах, каждое такое письмо содержит одну секцию UUE. При этом в заголовке письма обычно указывается порядковый номер секции, а также общее число секций (в виде
[6/55]
, где 6 — номер текущей секции, а 55 — общее число секций). Начальный номер секции различается в зависимости от используемого программного обеспечения (0 или 1).В эхоконференциях возможность использовать UUE регулируется правилами конференции; согласно требованию эхополиси R50, для принятия конференции на региональный бон в её правилах должно быть прописано ограничение на помещение UUE.[3] Существует множество небонных (не находящихся на региональном эхобоне) конференций, специализирующихся на передаче UUE-кодов.
Самовольное помещение UUE большого объёма расценивается как XAB. Существует прецедент срочной экскоммуникации узла 2:5030/950 за помещение пользователем узла в конференцию SU.KASHENKO.LOCAL около 16 Мб MP3-файлов в формате UUE.
Программное обеспечение
Общего назначения
- uuencode, uudecode
- DOS Navigator
- Total Commander
- MxUUE (плагин для Far Manager)
Фидонет
- Почтовый редактор GoldED+ также обеспечивается декодирование многосекционных UUE-кодов.
- Заслуженной популярностью в Фидонете пользуется программа FastUUE Сергея Коровкина, способная публиковать и собирать не только двоичные (UUE), но и текстовые секции.
- UUCode (Alex Lemenkov, Evgeny Nibylicin)
- hpucode из состава проекта husky.
Примечания
- ↑ При наложении такого запрета возникают проблемы «распознавания» многосекционных UUE-кодов.
- ↑ Основные ограничения вызваны распространённостью 16-битного программного обеспечения, предназначенного для например, тоссера FastEcho. Размер одного сегмента памяти, адресуемого такими программами, составляет 64 кБ, то есть 216 байтов.
- ↑ Вторая (действующая) версия эхополиси гласит: «Пересылка двоичных файлов в форматах UUENCODE, MIME и т. д. должна регламентироваться правилами конкретной эхоконференции, но в общем случае следует стремиться к снижению такого трафика — например, запретом помещения в конференцию двоичной информации без явного разрешения (ко)модератора».
См. также
- Base64
- BinHex
- YEnc
- FIDO
Ссылки
Wikimedia Foundation. 2010.