> unix | klasyczne | legacy <

// UUencoding – format kodowania Unix-to-Unix do przesyłania danych binarnych przez kanały tekstowe

[UNIX]

Klasyczny standard Unix

Historyczny schemat kodowania używany przez lata w systemach Unix do przesyłania plików przez pocztę i grupy dyskusyjne.

[ZGODNOŚĆ]

Wysoka zgodność

Wiele narzędzi w systemach Unix/Linux i starszych klientów poczty nadal obsługuje UUencode bezpośrednio.

[SAMOOPISUJĄCY]

Format samoopisujący

Dołącza nazwę pliku i uprawnienia w danych wyjściowych, co ułatwia odtworzenie pliku po stronie odbiorcy.

>> informacje techniczne

Jak działa UUencoding:

UUencoding przekształca dane binarne w tekst ASCII, korzystając wyłącznie ze znaków drukowalnych, zaczynając od spacji (ASCII 32). Podobnie jak Base64 koduje 3 bajty do 4 znaków, lecz używa innego zestawu znaków oraz dodaje metadane pliku w liniach begin/end.

Przykład:

"Hello" → begin 644 data\n%2&5L;&\\`\n`\nend

Dlaczego warto używać UUencoding:

  • >Zachowanie kompatybilności z istniejącymi skryptami i narzędziami Unix
  • >Przenoszenie uprawnień i nazw plików przez kanały tekstowe
  • >Analiza archiwów poczty, Usenet i starych backupów
  • >Rekonstrukcja zachowania starszych systemów i protokołów
  • >Praca z historycznymi danymi w projektach migracyjnych

>> najczęstsze pytania

Czym jest UUencoding?

UUencoding (Unix-to-Unix encoding) to schemat kodowania binarne→tekst, używany pierwotnie do wysyłania plików binarnych przez kanały obsługujące jedynie tekst, takie jak poczta elektroniczna i Usenet.

Czym UUencoding różni się od Base64?

Oba schematy kodują 3 bajty do 4 znaków, ale UUencoding używa innego zestawu znaków, zaczynającego się od spacji (ASCII 32), oraz umieszcza w liniach begin/end informacje o pliku, takie jak uprawnienia i nazwa.

Czy UUencoding jest dziś jeszcze potrzebny?

W nowych aplikacjach dominuje Base64, jednak UUencoding wciąż pojawia się w starych systemach, archiwach i narzędziach administracyjnych, więc jego obsługa może być kluczowa.

Dla kogo przeznaczone jest to narzędzie?

Dla programistów i administratorów systemów, którzy pracują z historycznymi danymi, serwerami pocztowymi, archiwami Usenet lub skryptami Unix wymagającymi formatu UUencode.

// Krótka ściąga

NazwaOpis
Length charbyte count + 32 (45 bytes -> M)
Group3 bytes -> 4 chars, each 6 bits + 32 (space..underscore)
Zero valuebacktick ` instead of space
Lineup to 45 bytes -> 60 chars
Headerbegin 644 filename
Trailer` line, then end

// Przykład krok po kroku

Input   Cat      (0x43 0x61 0x74)
Bits    010000 110110 000101 110100  = 16 54 5 52
+32     48 86 37 84  ->  0 V % T
Line    #0V%T        (# = 3 bytes + 32)

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

>> Więcej pytań

P: Czym jest UUencode?

O: Historyczną metodą Uniksa („Unix-to-Unix encode”), która zamienia dane binarne na drukowalne znaki ASCII do wysyłania pocztą lub przez Usenet. 3 bajty stają się 4 znakami, narzut ok. 33%.

P: Czym UUencode różni się od Base64?

O: Oba zamieniają 3 bajty na 4 znaki. UUencode dodaje 32 do każdej 6-bitowej wartości (znaki od spacji do „_”), Base64 używa A–Z a–z 0–9 + /. UUencode dodaje też znak długości w każdym wierszu oraz wiersze begin/end z nazwą pliku i uprawnieniami.

P: Czy UUencode jest jeszcze używany?

O: Rzadko. W poczcie w dużej mierze zastąpiło go MIME z Base64. Spotyka się go w starych archiwach Usenetu i narzędziach uuencode/uudecode. Do nowych zastosowań lepszy jest Base64.

Inne języki