Warning: session_name(): Cannot change session name when session is active in /home/stalko/rodina-ru.com/docs/dokuwiki/inc/init.php on line 231

Warning: session_set_cookie_params(): Cannot change session cookie parameters when session is active in /home/stalko/rodina-ru.com/docs/dokuwiki/inc/init.php on line 232
======UUE====== **UUE** ([[английский-язык|англ.]] //Uuencode//) — метод представления двоичных [[данные|данных]] в текстовой форме, пригодной для передачи через средства, предназначенные только для передачи текстов (например, через [[e-mail]], [[fidonet-technology-network|FTN]], [[nntp|NNTP]]) ([[транспортное-кодирование|транспортное кодирование]]). Название происходит от расшифровки названия программ uuencode/uudecode: //Unix-To-Unix encoding (decoding)//. В дальнейшем UUE в интернет-среде (почта, ньюсгруппы) был заменён на [[mime|MIME]], однако сохранил свою популярность в сети [[фидонет|Фидонет]]. //**Юю́ки**// — жаргонное наименование UUE-кодов в Фидонете. =====Описание формата===== UUE данные начинаются со строки ''begin mode file'', где ''mode'' — [[unix|Unix]]-права доступа к файлу в восьмеричной системе счисления (для DOS/Windows приложений это число всегда 644), а ''file'' — имя исходного файла. При кодировании из файла берутся данные по три байта (в случае, если осталось меньше 3 байт, недостающие заменяются нулями)(([[http://algolist.manual.ru/compress/standard/uue.php|UUE-кодирование]])). 24 бита, образующие эти три байта, делятся на четыре группы по 6 бит. Каждая шестибитная группа интерпретируется как число (от 0 до 26−1=63), к которому добавляется 32. Получившееся число в диапазоне от 32 до 95 трактуется как код символа в [[ascii|ASCII]] таблице (получаются символы от пробела (32) до знака подчёркивания (95)). Могут использоваться и другие символы ASCII, однако значение имеют только младшие шесть бит кода символа. (В силу свойств кодировки ASCII изменение регистра символа не меняет его младшие шесть битов).(([[http://algolist.manual.ru/compress/standard/uue.php|UUE-кодирование]])) Каждая группа из 60 символов (соответствует 45 байтам исходного файла) используется для создания отдельной строки(([[http://algolist.manual.ru/compress/standard/uue.php|UUE-кодирование]])). В начале строки указывается количество закодированных символов в строке (во всех строках, кроме последней, это число 45, то есть символ 'M'). Каждая строка завершается символом перевода строки (\n или \n\r в зависимости от платформы)(([[http://algolist.manual.ru/compress/standard/uue.php|UUE-кодирование]])). После окончания данных кодируемого файла помещается строка, содержащая единственный пробел (и перевод строки), и строка с текстом «end». Иногда в конце строки данных добавляют «пустые символы», обычно символ ''`'' (младшие 6 битов которого равны нулю) для предотвращения повреждения строк некоторыми почтовыми программами. =====Пример кодирования===== Пример кодирования английского слова Cat. {| | style="border-right:2px solid black"| Исходные символы ! style="border-right:2px solid green" colspan="8"| ''C'' ! style="border-right:2px solid green" colspan="8"| ''a'' ! style="border-right:2px solid black" colspan="8"| ''t'' |- | style="border-right:2px solid black"| ASCII коды (десятич.) ! style="border-right:2px solid green" colspan="8"| 67 ! style="border-right:2px solid green" colspan="8"| 97 ! style="border-right:2px solid black" colspan="8"| 116 |- | style="border-right:2px solid black"| ASCII (двоичн.) | 0 | 1 | 0 | 0 | 0 | style="border-right:2px solid red"| 0 | 1 | style="border-right:2px solid green"| 1 | 0 | 1 | 1 | style="border-right:2px solid red"| 0 | 0 | 0 | 0 | style="border-right:2px solid green"| 1 | 0 | style="border-right:2px solid red"| 1 | 1 | 1 | 0 | 1 | 0 | style="border-right:2px solid black"| 0 |- | style="border-right:2px solid black"| Новые десятичные значения ! style="border-right:2px solid red" colspan="6"| 16 ! style="border-right:2px solid red" colspan="6"| 54 ! style="border-right:2px solid red" colspan="6"| 5 ! style="border-right:2px solid black" colspan="6"| 52 |- | style="border-right:2px solid black"| +32 ! style="border-right:2px solid red" colspan="6"| 48 ! style="border-right:2px solid red" colspan="6"| 86 ! style="border-right:2px solid red" colspan="6"| 37 ! style="border-right:2px solid black" colspan="6"| 84 |- | style="border-right:2px solid black"| Символы UUE ! style="border-right:2px solid red" colspan="6"| ''0'' ! style="border-right:2px solid red" colspan="6"| ''V'' ! style="border-right:2px solid red" colspan="6"| ''%'' ! style="border-right:2px solid black" colspan="6"| ''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 |- | | | |   | [[grave-accent|`]] | 96 | (1) 000 000 |} =====Недостатки===== * Избыточность кодирования UUE составляет приблизительно 33 %. * Несмотря на узкий диапазон используемых символов, возникают проблемы при передаче UUE через старые компьютеры, использующие не ASCII кодировку (например, [[ebcdic|EBCDIC]]).(([[http://algolist.manual.ru/compress/standard/uue.php|UUE-кодирование]])) =====Особенности использования UUE в Фидонете===== UUE в Фидонете является стандартом де-факто для передачи двоичных данных. Это объясняется тем, что некоторые узлы отказывались передавать «приложенные» файлы (письма с флагом Att), что обеспечило UUE популярность в качестве альтернативы. В качестве дальнейших средств борьбы с передачей двоичных данных на некоторых узлах настраивали [[мейлер-фидонет|мейлеры]] и [[тоссер|тоссеры]] на отказ в передаче и тех сообщений, которые содержат UUE.((При наложении такого запрета возникают проблемы «распознавания» многосекционных UUE-кодов.)) Для обеспечения совместимости со старым [[программное-обеспечение|программным обеспечением]]((Основные ограничения вызваны распространённостью 16-битного программного обеспечения, предназначенного для [[dos|DOS]] — например, [[тоссер|тоссера]] [[fastecho|FastEcho]]. Размер одного сегмента памяти, адресуемого такими программами, составляет 64 [[двоичные-приставки|кБ]], то есть 216 байтов.)) размер письма во многих эхоконференциях до 2004‑2005 года ограничивался величиною, например, 32 [[двоичные-приставки|кБ]]. С учётом служебной информации, добавляемой при распространении почты по Фидонету, письму не рекомендовалось превосходить размер 500 строк (~22 кБ оригинального файла). Файлы большего размера передаются в нескольких письмах, каждое такое письмо содержит одну //секцию// UUE. При этом в заголовке письма обычно указывается порядковый номер секции, а также общее число секций (в виде ''[6/55]'', где 6 — номер текущей секции, а 55 — общее число секций). Начальный номер секции различается в зависимости от используемого программного обеспечения (0 или 1). В эхоконференциях возможность использовать UUE регулируется правилами конференции; согласно требованию [[эхополиси]] R50, для принятия конференции на региональный бон в её правилах должно быть прописано ограничение на помещение UUE.((Вторая (действующая) версия эхополиси гласит: «Пересылка двоичных файлов в форматах UUENCODE, MIME и т. д. должна регламентироваться правилами конкретной эхоконференции, но в общем случае следует стремиться к снижению такого трафика — например, запретом помещения в конференцию двоичной информации без явного разрешения (ко)модератора».)) Существует множество небонных (не находящихся на региональном эхобоне) конференций, специализирующихся на передаче UUE-кодов. Самовольное помещение UUE большого объёма расценивается как [[xab|XAB]]. Существует прецедент срочной [[экскоммуникация|экскоммуникации]] узла 2:5030/950 за помещение пользователем узла в конференцию SU.KASCHENKO.LOCAL около 16 Мб [[mpeg-audio-layer-3|MP3]]-файлов в формате UUE. =====Программное обеспечение===== ====Общего назначения==== * uuencode, uudecode * [[dos-navigator|DOS Navigator]] * [[total-commander|Total Commander]] * MxUUE ([[плагин]] для [[far-manager|Far Manager]]) ====Фидонет==== * Почтовый редактор [[golded|GoldED]] изначально поддерживал кодирование и декодирование только односекционных UUE. В редакторе [[golded+|GoldED+]] также обеспечивается декодирование многосекционных UUE-кодов. * Заслуженной популярностью в Фидонете пользуется программа [[fastuue|FastUUE]] [[сергей-коровкин|Сергея Коровкина]], способная публиковать и собирать не только двоичные (UUE), но и текстовые секции. * [[uucode|UUCode]] (Alex Lemenkov, Evgeny Nibylicin) * hpucode из состава проекта [[husky]]. =====См. также===== * [[mime|MIME]] * [[xxencode|Xxencode]] * [[base64|Base64]] * [[binhex|BinHex]] * [[yenc|YEnc]] * [[fido|FIDO]] =====Ссылки===== * [[http://algolist.manual.ru/compress/standard/uue.php|UUE-кодирование]] * [[http://www.opengroup.org/onlinepubs/009695399/utilities/uuencode.html|Описание программы uuencode в стандарте POSIX]] Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition  (англ.) {{tag>"Форматы данных" Фидонет}}