Xxencode e xxdecode

Codifica testo, byte esadecimali o file con xxencode, oppure riporta ai dati originali i blocchi xxencode. L’alfabeto usa solo lettere, cifre, il segno più e il segno meno.

Funziona interamente nel tuo browser. Non viene caricato nulla.

Come si usa

  1. Scegli Codifica per produrre un blocco xxencode, oppure Decodifica per riportarlo ai dati originali.
  2. Lascia attiva l’opzione Righe begin / end e imposta un Nome file per ottenere un blocco completo, oppure disattivala per avere solo le righe di dati.
  3. Digita o incolla l’input, oppure apri un file. Il risultato si aggiorna mentre scrivi.
  4. Copia il risultato o scaricalo. In decodifica, se i dati non sono testo, scegli l’output Esadecimale o scarica il file.

Che cos’è xxencode?

Xxencode mantiene la struttura di uuencode e cambia solo i caratteri. Ogni gruppo di 3 byte diventa sempre quattro valori a 6 bit, le righe di dati contengono sempre fino a 45 byte preceduti da un carattere di lunghezza, e il blocco si trova sempre tra una riga begin 644 name e una riga end.

I 64 valori corrispondono a +, -, alle cifre 0-9, alle lettere maiuscole A-Z e alle lettere minuscole a-z, in quest’ordine. Il carattere di lunghezza usa la stessa tabella, quindi una riga completa di 45 byte inizia con h, e la riga vuota prima di end è un singolo +. Poiché la struttura è identica, l’output ha la stessa dimensione di uuencode: circa il 38% più grande dell’input, contando i caratteri di lunghezza e le interruzioni di riga.

Perché è nato xxencode

L’output di uuencode è pieno di segni di punteggiatura come [, ], \, ^ e !. I mainframe IBM usano EBCDIC anziché ASCII, e questi caratteri occupano posizioni diverse nelle varie code page EBCDIC. Quando la posta attraversava i gateway tra reti ASCII ed EBCDIC, questi caratteri potevano essere convertiti in modo errato e il file si danneggiava.

Lettere, cifre, più e meno sono uguali in tutte le code page EBCDIC, quindi il testo xxencode si converte senza problemi in entrambe le direzioni. In seguito MIME ha raggiunto lo stesso obiettivo: anche Base64 usa solo lettere, cifre e pochi simboli identici in ASCII ed EBCDIC. Xxencode non è mai diventato diffuso quanto uuencode, e alla fine Base64 li ha sostituiti entrambi.

Uuencode e xxencode a confronto

UuencodeXxencode
CaratteriDa ASCII 32 a 95, accento grave per lo zero+ - 0-9 A-Z a-z
Una riga completa di 45 byte inizia conMh
Ultima riga prima di end`+
Sicuro attraverso i gateway EBCDICNoSì

Specifiche

Alfabeto+ - 0-9 A-Z a-z
Dimensione dell’outputCirca 137% inclusi i prefissi di riga
PaddingRighe fino a 45 byte
Standardxxencode
Distingue maiuscole/minuscoleSì

Esempi

Input (UTF-8)Output
Hello, World!begin 644 data.bin BG4JgP4wg63RjQalY6E++ + end
Base64.isbegin 644 data.bin 7Ea3nNHMo9aZn + end
你好begin 644 data.bin 4t9qUtOKx + end

Domande frequenti

Come si distinguono uuencode e xxencode?
Guarda le righe di dati. Le righe xxencode contengono solo lettere, cifre, più e meno, e le righe complete iniziano con h. Le righe uuencode contengono segni di punteggiatura e le righe complete iniziano con M. Se qui la decodifica fallisce con un carattere non valido, prova la pagina uuencode.
Lo strumento scrive le righe begin ed end?
Sì, per impostazione predefinita scrive begin 644 con il nome file che inserisci, e le righe di chiusura. Disattiva l’opzione se ti servono solo le righe di dati codificate.
Posso decodificare un blocco senza la riga begin?

Sì. Senza riga begin, ogni riga non vuota viene decodificata come dati. Se c’è, la decodifica inizia dopo di essa e si ferma alla riga end, quindi il testo circostante viene ignorato.

Xxencode si usa ancora?
Raramente. Lo si trova soprattutto in vecchi archivi di posta e di news. Per i nuovi dati, Base64 è supportato quasi ovunque ed è altrettanto sicuro sui canali che trasportano solo testo.