> unix | klassisk | legacy <

// UUencoding – Unix-to-Unix-kodning til overførsel af binære data via tekstkanaler

[UNIX]

Klassisk Unix-standard

Historisk kodningsmetode anvendt på Unix-systemer til e‑mail-vedhæftninger, Usenet og filoverførsler.

[KOMPATIBEL]

Bred kompatibilitet

Understøttes stadig af mange Unix/Linux-værktøjer og ældre e‑mailklienter, der forstår UUencode-data.

[SELVSTÆNDIG]

Selvstændigt format

Indeholder filnavn og rettigheder i begin/end-linjerne, så den oprindelige fil nemt kan genskabes.

>> tekniske detaljer

Sådan fungerer UUencoding:

UUencoding konverterer binære data til ASCII-tekst ved hjælp af udskrivbare tegn, der starter ved mellemrum (ASCII 32). Ligesom Base64 koder det 3 byte til 4 tegn, men benytter et andet tegnsæt og bærer filmetadata i begin/end-linjerne.

Eksempel:

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

Hvorfor bruge UUencoding:

  • >For at bevare kompatibiliteten med ældre Unix/Linux-scripts og processer
  • >For at sende filnavn og rettigheder via rene tekstkanaler
  • >Til analyse af gamle e‑mailarkiver og Usenet-data
  • >Når eksisterende systemer specifikt forventer UUencode-formatet
  • >Til fejlsøgning og migrering af historiske datasæt

>> ofte stillede spørgsmål

Hvad er UUencoding?

UUencoding (Unix-to-Unix encoding) er en binær‑til‑tekst-kodning, der oprindeligt blev udviklet til at sende binære filer over tekstbaserede kanaler som e‑mail og Usenet.

Hvordan adskiller UUencoding sig fra Base64?

Begge koder 3 byte til 4 tegn, men UUencoding bruger et andet tegnsæt, der starter ved mellemrum (ASCII 32), og tilføjer filmetadata i begin/end-linjerne.

Er UUencoding stadig relevant i dag?

I moderne applikationer er Base64 mere udbredt, men UUencode dukker stadig op i ældre systemer, logfiler og arkiver, hvor kompatibilitet er vigtig.

Hvem har gavn af dette værktøj?

Udviklere og systemadministratorer, der arbejder med legacy Unix-miljøer, mailservere og historiske data, vil især have glæde af det.

// Hurtig reference

NavnBeskrivelse
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

// Gennemregnet eksempel

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

>> Flere spørgsmål

S: Hvad er UUencode?

S: En historisk Unix-metode (”Unix-to-Unix encode”), der omdanner binære data til udskrivbare ASCII-tegn til afsendelse via e-mail eller Usenet. 3 byte bliver til 4 tegn, ca. 33 % overhead.

S: Hvordan adskiller UUencode sig fra Base64?

S: Begge gør 3 byte til 4 tegn. UUencode lægger 32 til hver 6-bitsværdi (tegn fra mellemrum til ”_”), Base64 bruger A–Z a–z 0–9 + /. UUencode tilføjer også et længdetegn pr. linje samt begin/end-linjer med filnavn og rettigheder.

S: Bruges UUencode stadig?

S: Sjældent. MIME med Base64 har i vid udstrækning afløst det i e-mail. Det ses i gamle Usenet-arkiver og Unix-værktøjerne uuencode/uudecode. Til nyt er Base64 bedre.

Andre sprog