Opis narzędzia

UUencode (Unix-to-Unix encoding) jest formatem kodowania binarno‑tekstowego, który był szeroko używany do przesyłania plików binarnych przez kanały komunikacji oparte na tekście, szczególnie w systemach poczty elektronicznej przed standaryzacją MIME. To narzędzie umożliwia kodowanie danych tekstowych do formatu uuencode oraz dekodowanie danych uuencoded z powrotem do ich pierwotnej postaci tekstowej.

Funkcje

  • Dwukierunkowa konwersja: Koduj tekst do formatu uuencode lub dekoduj dane uuencoded z powrotem do tekstu
  • Standardowy format: Używa standardowego formatu uuencode z markerami „begin” i „end”
  • Tryb uprawnień: Koduje z domyślnym trybem uprawnień 644
  • Obsługa nazw plików: Zawiera domyślną nazwę pliku „file.txt” w wyjściu zakodowanym
  • Automatyczne wykrywanie: Inteligentnie obsługuje nagłówek i stopkę uuencode

Czym jest UUencode?

UUencode został opracowany w latach 80., aby umożliwić przesyłanie plików binarnych przez systemy poczty elektronicznej obsługujące jedynie 7‑bitowy tekst ASCII. Konwertuje dane binarne (lub tekst) na drukowalne znaki ASCII przy użyciu 6‑bitowego schematu kodowania. Każda grupa 3 bajtów (24 bity) jest zamieniana na 4 drukowalne znaki (4 × 6 = 24 bity).

Format zawiera:

  • Nagłówek: begin [mode] [filename] – wskazuje początek zakodowanych danych
  • Dane zakodowane: Linijki rozpoczynające się znakiem określającym długość, po którym następuje zakodowana zawartość
  • Stopka: end – oznacza koniec zakodowanych danych

Przypadki użycia

  • Kompatybilność ze starszymi systemami: Praca ze starszymi systemami Unix i archiwami poczty elektronicznej wykorzystującymi uuencode
  • Załączniki e‑mail: Dekodowanie binarnych załączników ze starych wiadomości e‑mail
  • Archiwizacja danych: Wyodrębnianie plików z historycznych archiwów uuencoded
  • Implementacja protokołu: Testowanie lub implementacja funkcjonalności uuencode/uudecode
  • Odzyskiwanie plików: Odzyskiwanie danych z plików tekstowych uuencoded
  • Cele edukacyjne: Nauka o historycznych metodach kodowania oraz konwersjach binarno‑tekstowych

Szczegóły konwersji

Proces kodowania:

  1. Dane są przetwarzane w fragmentach do 45 bajtów
  2. Każda linia rozpoczyna się znakiem wskazującym liczbę zakodowanych bajtów
  3. Każde 3 bajty są konwertowane na 4 znaki poprzez rozdzielenie 24 bitów na 4 wartości po 6 bitów
  4. Każda 6‑bitowa wartość jest zamieniana na drukowalny znak poprzez dodanie 32 (znak spacji)
  5. Wynik jest otoczony markerami „begin 644 filename” i „end”

Proces dekodowania:

  1. Znajduje znacznik „begin”, aby rozpocząć dekodowanie
  2. Odczytuje znak określający długość na początku każdej linii
  3. Konwertuje każdą grupę 4 znaków z powrotem na 3 bajty
  4. Zatrzymuje się na znaczniku „end”
  5. Zwraca oryginalne dane tekstowe