Charger un fichier
  1. base64hub
  2. Autres bases
  3. Uuencode

Convertisseur uuencode et uudecode en ligne

Saisissez du texte pour obtenir une sortie uuencode classique avec les lignes begin et end. Inversez le sens pour décoder : collez un message entier, le décodeur trouve la ligne begin, décode le bloc et propose le fichier sous son nom d’origine.

Gratuit sans inscription, sans limites Local rien n'est envoyé Nom de fichier lu dans la ligne begin Mis à jour 27 oct. 2026
Entrée 0Octets 0 BSortie 0

Traité dans votre navigateur. Cette page ne peut envoyer vos données nulle part – comment le savons-nous

Comment encoder et décoder en uuencode

Pour encoder :

  1. Saisissez ou collez du texte dans Entrée · Texte. Le bloc uuencodé s’affiche dans Sortie · uuencode.
  2. Réglez le Nom du fichier sous la sortie ; il est écrit dans la ligne begin. Par défaut, c’est data.bin.
  3. Décochez lignes begin/end si vous ne voulez que les lignes encodées, par exemple pour les intégrer dans un autre format.

Pour décoder :

  1. Cliquez sur uuencode → Texte dans le sélecteur de sens.
  2. Collez les données uuencodées. Elles peuvent inclure le texte du message ou de l’article de news qui les entoure : tout ce qui précède la ligne begin est ignoré.
  3. Lisez le texte dans la sortie, ou cliquez sur Enregistrer les octets pour télécharger le fichier décodé sous le nom indiqué dans la ligne begin. Pour un contenu binaire, réglez Vers sur Hex pour l’inspecter d’abord.

Anatomie d’un fichier uuencodé

Encoder le texte Cat avec le nom de fichier hello.txt donne :

begin 644 hello.txt
#0V%T
`
end
  • begin 644 hello.txt indique les permissions Unix et le nom du fichier.
  • Chaque ligne de données commence par un caractère de longueur : le nombre d’octets de la ligne plus 32. # vaut 35 : cette ligne contient donc 3 octets. Une ligne pleine contient 45 octets et commence par M, suivi de 60 caractères.
  • Les caractères de données fonctionnent à peu près comme Base64 : chaque groupe de 3 octets devient quatre valeurs de 6 bits, et chaque valeur v s’écrit avec le caractère de code v + 32. Une valeur 0 s’écrit avec un accent grave au lieu d’une espace.
  • La ligne contenant un seul accent grave est une ligne vide de longueur 0, et end ferme le bloc.

Une entrée plus longue montre la structure d’une ligne pleine :

begin 644 fox.txt
M5&AE('%U:6-K(&)R;W=N(&9O>"!J=6UP<R!O=F5R('1H92!L87IY(&1O9RX@
*,#$R,S0U-C<X.0``
`
end

C’est The quick brown fox jumps over the lazy dog. 0123456789 : 45 octets sur la ligne M et 10 sur la ligne * (42 − 32 = 10). Chaque ligne porte sa propre longueur et un saut de ligne : les données uuencodées sont donc environ 38 % plus grosses que l’entrée, un peu plus qu’en Base64.

Où l’on croise encore uuencode

Uuencode vient de Unix-to-Unix Copy (UUCP) et était la méthode standard pour envoyer des fichiers binaires par e-mail et sur Usenet avant MIME. Aujourd’hui, on le rencontre dans de vieilles archives de messagerie, des articles Usenet, certains transferts de fichiers embarqués ou mainframe, et des scripts qui envoient des fichiers à mail par un pipe.

La convention de l’accent grave date de cette époque. Certaines passerelles supprimaient les espaces en fin de ligne, ce qui détruisait les données encodées avec une espace pour zéro ; l’accent grave, lui, survit. Cet encodeur écrit des accents graves, et le décodeur accepte les deux.

Uuencode en ligne de commande et en Python

Avec GNU sharutils installé :

uuencode hello.txt hello.txt > hello.uu
uudecode hello.uu

Le premier argument est le fichier d’entrée et le second le nom écrit dans la ligne begin. uudecode crée le fichier portant ce nom dans le répertoire courant. Ajoutez -m à uuencode pour obtenir du Base64 à la place.

En Python, binascii encode une ligne de 45 octets au plus à la fois :

import binascii

binascii.b2a_uu(b"Cat", backtick=True)   # b'#0V%T\n'
binascii.a2b_uu(b"#0V%T")                # b'Cat'

Ajoutez vous-même la ligne begin 644 name, la ligne finale avec l’accent grave et end. D’autres exemples d’encodage sur la page Python.

Problèmes courants

  • Une erreur à la position 1. Il n’y a pas de ligne begin et le texte n’est pas non plus constitué de lignes uuencodées seules. Vérifiez que vous avez copié le bloc entier.
  • Une sortie illisible à partir d’un bloc begin-base64. Ce bloc a été écrit par uuencode -m et c’est du Base64. Copiez les lignes entre begin-base64 et ==== dans le décodeur Base64.
  • Le fichier est tronqué ou a des octets faux près des fins de ligne. Un client de messagerie a recoupé les lignes ou supprimé les espaces finales. Chaque ligne de données doit être intacte ; essayez de récupérer la pièce jointe d’origine ou la source du message.
  • Un message en plusieurs parties ne se décode qu’en partie. Les gros fichiers étaient souvent répartis sur plusieurs messages. Assemblez les parties dans l’ordre, en gardant un seul begin et un seul end, avant de décoder.

FAQ

Comment corriger « uuencode: command not found » ?

La commande n’est pas installée par défaut sur la plupart des systèmes Linux. Sous Debian et Ubuntu, sudo apt install sharutils ajoute uuencode et uudecode ; Fedora a aussi un paquet sharutils.

Que signifie begin 644 ?

644 est le mode de fichier Unix que doit recevoir le fichier décodé (lecture/écriture pour le propriétaire, lecture pour les autres), et le mot qui suit est le nom du fichier. uudecode crée ce fichier ; cette page utilise ce nom pour Enregistrer les octets.

Uuencode, est-ce la même chose que Base64 ?

Les deux transforment 3 octets en 4 caractères, mais uuencode utilise la plage ASCII de l’espace au tiret bas et ajoute un caractère de longueur par ligne. Base64 a un autre alphabet et c’est lui qu’utilisent les e-mails MIME. uuencode -m écrit du Base64 dans un bloc begin-base64.

Python sait-il encore décoder les fichiers uuencodés ?

Oui, avec binascii.a2b_uu, une ligne à la fois. Le module de plus haut niveau uu a été déprécié dans Python 3.11 et supprimé dans la 3.13.