> unix | klasyczne | legacy <
// UUencoding – format kodowania Unix-to-Unix do przesyłania danych binarnych przez kanały tekstowe
Klasyczny standard Unix
Historyczny schemat kodowania używany przez lata w systemach Unix do przesyłania plików przez pocztę i grupy dyskusyjne.
Wysoka zgodność
Wiele narzędzi w systemach Unix/Linux i starszych klientów poczty nadal obsługuje UUencode bezpośrednio.
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
| Nazwa | Opis |
|---|---|
| Length char | byte count + 32 (45 bytes -> M) |
| Group | 3 bytes -> 4 chars, each 6 bits + 32 (space..underscore) |
| Zero value | backtick ` instead of space |
| Line | up to 45 bytes -> 60 chars |
| Header | begin 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.