Инструменты пользователя

Инструменты сайта


No renderer 'odt' found for mode 'odt'
uue

UUE

UUE (англ. Uuencode) — метод представления двоичных данных в текстовой форме, пригодной для передачи через средства, предназначенные только для передачи текстов (например, через e-mail, FTN, NNTP) (транспортное кодирование).

Название происходит от расшифровки названия программ uuencode/uudecode: Unix-To-Unix encoding (decoding). В дальнейшем UUE в интернет-среде (почта, ньюсгруппы) был заменён на MIME, однако сохранил свою популярность в сети Фидонет.

Юю́ки — жаргонное наименование UUE-кодов в Фидонете.

Описание формата

UUE данные начинаются со строки begin mode file, где mode — Unix-права доступа к файлу в восьмеричной системе счисления (для DOS/Windows приложений это число всегда 644), а file — имя исходного файла.

При кодировании из файла берутся данные по три байта (в случае, если осталось меньше 3 байт, недостающие заменяются нулями)1). 24 бита, образующие эти три байта, делятся на четыре группы по 6 бит. Каждая шестибитная группа интерпретируется как число (от 0 до 26−1=63), к которому добавляется 32. Получившееся число в диапазоне от 32 до 95 трактуется как код символа в ASCII таблице (получаются символы от пробела (32) до знака подчёркивания (95)). Могут использоваться и другие символы ASCII, однако значение имеют только младшие шесть бит кода символа. (В силу свойств кодировки ASCII изменение регистра символа не меняет его младшие шесть битов).2)

Каждая группа из 60 символов (соответствует 45 байтам исходного файла) используется для создания отдельной строки3). В начале строки указывается количество закодированных символов в строке (во всех строках, кроме последней, это число 45, то есть символ 'M'). Каждая строка завершается символом перевода строки (\n или \n\r в зависимости от платформы)4).

После окончания данных кодируемого файла помещается строка, содержащая единственный пробел (и перевод строки), и строка с текстом «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

Недостатки

  • Избыточность кодирования UUE составляет приблизительно 33 %.
  • Несмотря на узкий диапазон используемых символов, возникают проблемы при передаче UUE через старые компьютеры, использующие не ASCII кодировку (например, EBCDIC).5)

Особенности использования UUE в Фидонете

UUE в Фидонете является стандартом де-факто для передачи двоичных данных. Это объясняется тем, что некоторые узлы отказывались передавать «приложенные» файлы (письма с флагом Att), что обеспечило UUE популярность в качестве альтернативы. В качестве дальнейших средств борьбы с передачей двоичных данных на некоторых узлах настраивали мейлеры и тоссеры на отказ в передаче и тех сообщений, которые содержат UUE.6)

Для обеспечения совместимости со старым программным обеспечением7) размер письма во многих эхоконференциях до 2004‑2005 года ограничивался величиною, например, 32 кБ. С учётом служебной информации, добавляемой при распространении почты по Фидонету, письму не рекомендовалось превосходить размер 500 строк (~22 кБ оригинального файла). Файлы большего размера передаются в нескольких письмах, каждое такое письмо содержит одну секцию UUE. При этом в заголовке письма обычно указывается порядковый номер секции, а также общее число секций (в виде [6/55], где 6 — номер текущей секции, а 55 — общее число секций). Начальный номер секции различается в зависимости от используемого программного обеспечения (0 или 1).

В эхоконференциях возможность использовать UUE регулируется правилами конференции; согласно требованию эхополиси R50, для принятия конференции на региональный бон в её правилах должно быть прописано ограничение на помещение UUE.8) Существует множество небонных (не находящихся на региональном эхобоне) конференций, специализирующихся на передаче UUE-кодов.

Самовольное помещение UUE большого объёма расценивается как XAB. Существует прецедент срочной экскоммуникации узла 2:5030/950 за помещение пользователем узла в конференцию SU.KASCHENKO.LOCAL около 16 Мб MP3-файлов в формате UUE.

Программное обеспечение

Общего назначения

Фидонет

  • Почтовый редактор GoldED изначально поддерживал кодирование и декодирование только односекционных UUE. В редакторе GoldED+ также обеспечивается декодирование многосекционных UUE-кодов.
  • Заслуженной популярностью в Фидонете пользуется программа FastUUE Сергея Коровкина, способная публиковать и собирать не только двоичные (UUE), но и текстовые секции.
  • UUCode (Alex Lemenkov, Evgeny Nibylicin)
  • hpucode из состава проекта husky.

См. также

Ссылки

6)
При наложении такого запрета возникают проблемы «распознавания» многосекционных UUE-кодов.
7)
Основные ограничения вызваны распространённостью 16-битного программного обеспечения, предназначенного для DOS например, тоссера FastEcho. Размер одного сегмента памяти, адресуемого такими программами, составляет 64 кБ, то есть 216 байтов.
8)
Вторая (действующая) версия эхополиси гласит: «Пересылка двоичных файлов в форматах UUENCODE, MIME и т. д. должна регламентироваться правилами конкретной эхоконференции, но в общем случае следует стремиться к снижению такого трафика — например, запретом помещения в конференцию двоичной информации без явного разрешения (ко)модератора».
uue.txt · Последние изменения: 2016/12/12 16:13 (внешнее изменение)