Uuencode и uudecode онлайн

Вставьте текст или байты в hex, чтобы закодировать их в uuencode — со строками begin и end или без них, — либо переключитесь на декодирование и вставьте блок uuencode из старого письма, сообщения Usenet или shell-архива, чтобы получить содержимое.

Режим
Байты как

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Выберите Кодировать или Декодировать.
  2. Кодирование: введите текст или выберите «Байты как: Hex» и вставьте hex. Оставьте строки begin/end для полного блока (begin 644 file.txt … end) или выключите их, чтобы получить только строки данных.
  3. Декодирование: вставьте блок. Текст до begin и после end игнорируется, так что можно вставить письмо целиком.

Как это работает

Каждая группа из 3 байтов (24 бита) делится на четыре 6-битных значения. Значение v записывается символом с кодом 32 + v, только 0 записывается обратным апострофом `. Строка начинается с символа длины (32 + число байтов) и содержит не больше 45 байтов, то есть 60 символов данных. Неполная последняя группа дополняется нулевыми байтами; символ длины подсказывает декодеру, сколько байтов настоящие.

Пример

Текст Cat — это байты 43 61 74:

  • в битах: 010000 110110 000101 110100 = 16, 54, 5, 52;
  • плюс 32: 48, 86, 37, 84 = 0 V % T;
  • в строке 3 байта, поэтому она начинается с 32 + 3 = 35 = #.

Полный блок:

begin 644 file.txt
#0V%T
`
end

Советы

  • Если декодирование не удаётся, проверьте, что блок не переформатировали: каждая строка должна начинаться со своего символа длины.
  • 644 в строке begin — права доступа к файлу в Unix; здесь они и имя файла при декодировании игнорируются.
  • Русский текст в UTF-8 занимает по 2 байта на букву, поэтому блок для него вдвое длиннее, чем для латиницы.

Частые вопросы

Что такое uuencode?

Кодировка Unix-to-Unix — способ передать двоичный файл по каналу, который пропускает только текст, например по ранней электронной почте и Usenet. Каждые 3 байта превращаются в 4 печатных символа, в строке до 45 байтов, а блок обрамлён строкой begin (права доступа и имя файла) и строкой end.

Почему в одних файлах uuencode пробелы, а в других обратные апострофы?

Сначала значение 0 записывали пробелом (код 32). Почтовые системы часто срезали пробелы в конце строк, поэтому более поздние кодировщики, включая GNU sharutils, пишут вместо него обратный апостроф `. Декодер понимает оба: он берёт код символа минус 32 и оставляет младшие 6 бит.

Что означает первый символ строки?

Число байтов в строке плюс 32. M означает 45 байтов (77 − 32) — обычная полная строка; последняя, короткая строка начинается с другой буквы, а перед end стоит строка из одного ` (ноль байтов).

Декодируются ли блоки begin-base64?

Нет. uuencode -m записывает внутри begin-base64 … ==== обычный Base64, поэтому тело такого блока нужно декодировать декодером Base64.

Ещё в разделе «Разработчикам»

Все инструменты раздела: Разработчикам ·Обновлено 7 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.