Mode d’emploi
- Choisissez Encoder pour produire un bloc xxencodé, ou Décoder pour le reconvertir en données.
- Laissez l’option « Lignes begin / end » activée et renseignez le champ « Nom du fichier » pour obtenir un bloc complet, ou désactivez-la pour n’obtenir que les lignes de données.
- Saisissez ou collez votre entrée, ou ouvrez un fichier. Le résultat se met à jour pendant la saisie.
- Copiez le résultat ou téléchargez-le. Au décodage, choisissez la sortie Hexa ou téléchargez le fichier si les données ne sont pas du texte.
Qu’est-ce que xxencode ?
Xxencode conserve la structure de uuencode et ne change que les caractères. Chaque groupe de 3 octets devient toujours quatre valeurs de 6 bits, les lignes de données contiennent toujours au maximum 45 octets précédés d’un caractère de longueur, et le bloc se trouve toujours entre une ligne begin 644 name et une ligne end.
Les 64 valeurs correspondent à +, -, aux chiffres 0-9, aux lettres majuscules A-Z et aux lettres minuscules a-z, dans cet ordre. Le caractère de longueur utilise la même table : une ligne complète de 45 octets commence donc par h, et la ligne vide qui précède end se compose d’un seul +. Comme la structure est identique, la sortie a la même taille qu’avec uuencode : environ 38 % de plus que l’entrée, caractères de longueur et sauts de ligne compris.
Pourquoi xxencode a été créé
La sortie de uuencode regorge de signes de ponctuation comme [, ], \, ^ et !. Les mainframes IBM utilisent EBCDIC plutôt qu’ASCII, et ces caractères occupent des positions différentes selon les pages de code EBCDIC. Lorsque le courrier transitait par des passerelles entre réseaux ASCII et EBCDIC, ces caractères pouvaient être mal convertis, et le fichier était alors corrompu.
Les lettres, les chiffres, le plus et le moins sont identiques dans toutes les pages de code EBCDIC : le texte xxencodé se convertit donc proprement dans les deux sens. MIME a plus tard atteint le même objectif : Base64 n’utilise lui aussi que des lettres, des chiffres et quelques symboles identiques en ASCII et en EBCDIC. Xxencode n’est jamais devenu aussi courant que uuencode, et Base64 a fini par remplacer les deux.
Uuencode et xxencode côte à côte
| Uuencode | Xxencode | |
|---|---|---|
| Caractères | ASCII 32 à 95, accent grave pour zéro | + - 0-9 A-Z a-z |
| Début d’une ligne complète de 45 octets | M | h |
| Dernière ligne avant end | ` | + |
| Résiste aux passerelles EBCDIC | Non | Oui |
Spécifications
| Alphabet | + - 0-9 A-Z a-z |
|---|---|
| Taille de sortie | Environ 137 %, préfixes de ligne compris |
| Remplissage | Lignes de 45 octets au maximum |
| Norme | xxencode |
| Sensible à la casse | Oui |
Exemples
| Entrée (UTF-8) | Sortie |
|---|---|
Hello, World! | begin 644 data.bin
BG4JgP4wg63RjQalY6E++
+
end |
Base64.is | begin 644 data.bin
7Ea3nNHMo9aZn
+
end |
你好 | begin 644 data.bin
4t9qUtOKx
+
end |
Questions fréquentes
Comment distinguer uuencode et xxencode ?
h. Les lignes uuencodées contiennent de la ponctuation, et les lignes complètes commencent par M. Si le décodage échoue ici avec un caractère non valide, essayez la page uuencode.L’outil écrit-il les lignes begin et end ?
begin 644 avec le nom de fichier que vous saisissez, ainsi que les lignes de fermeture. Désactivez l’option si vous n’avez besoin que des lignes de données encodées.Puis-je décoder un bloc sans la ligne begin ?
Oui. Sans ligne begin, chaque ligne non vide est décodée comme des données. Avec une ligne begin, le décodage commence après elle et s’arrête à la ligne end : le texte environnant est ignoré.