La codifica Uuencode (abbreviazione di Unix-to-Unix encode) è un algoritmo che permette di convertire dati binari codificati su 8 bit in un formato di codifica su 7 bit.
La codifica Uuencode è stata creata in origine per permettere l'invio di file binari grazie al protocollo di posta elettronica uucp. In effetti, il sistema uucp permetteva di convertire i set di caratteri utilizzati fra i diversi sistemi e non permetteva di distinguere i testi del messaggio di un allegato. Così, Uuencode è stato previsto per convertire i file binari in un formato di testo compatibile con la messaggeria e senza comportare i caratteri che rischiano di essere convertiti, cosa che renderà illeggibile l'allegato. La decodifica che consiste nel ritrovare un file binario partendo da un file Uucodificato è detto Uudecodifica (in inglese Uudecoding).
Un file in formato Uuencode comincia con una stringa dal formato seguente:
begin mode nome_del_file
.
La decodifica Uuencode consiste nel prendere dei gruppi di 3 byte (24 bit) e considerarli come 4 gruppi di 6 bit, rappresentati da dei valori compresi tra 0 e 63. Se ci sono almeno 24 bit nel flusso di entrata, Uuencode completa con degli 0.
Uuencode aggiunge 32 (valore decimale) ad ogni valore, per ottenere un valore corrispondente ad un carattere ASCII stampabile. I dati sono rappresentati su stringhe di 60 caratteri. Così ogni stringa permette di decodificare 45 byte di flusso d'entrata dato che 4 byte di dati in uscita rappresentano 3 byte di dati in entrata. Ogni stringa è preceduta da un carattere che indica il numero di caratteri della stringa stessa.
Infine, una stringa che contenga unicamente uno spazio, seguita da una stringa con una catena di caratteri end. Lo spazio che precede la stringa finale è talvolta sostituito da un carattere ASCII 96 (accento grave), dato che alcuni software di messaggeria cancellano le linee vuote.
Foto: © Pixabay.