Xxencode en xxdecode

Codeer tekst, hex-bytes of bestanden met xxencode, of decodeer xx-gecodeerde blokken terug naar de oorspronkelijke gegevens. Het alfabet bestaat alleen uit letters, cijfers, plus en min.

Werkt volledig in je browser. Er wordt niets geüpload.

Zo gebruik je het

  1. Kies Coderen om een xx-gecodeerd blok te maken, of Decoderen om een blok terug te zetten naar gegevens.
  2. Laat begin- / end-regels aan staan en vul een Bestandsnaam in voor een compleet blok, of zet de optie uit als je alleen de gegevensregels wilt.
  3. Typ of plak je invoer, of gebruik Bestand openen. Het resultaat wordt bijgewerkt terwijl je typt.
  4. Kopieer het resultaat of gebruik Downloaden. Zet bij het decoderen Uitvoer als op Hex of download het bestand als de gegevens geen tekst zijn.

Wat is xxencode?

Xxencode behoudt de structuur van uuencode en verandert alleen de tekens. Elke 3 bytes worden nog steeds vier 6-bitswaarden, gegevensregels bevatten nog steeds maximaal 45 bytes achter een lengteteken, en het blok staat nog steeds tussen een regel begin 644 name en een regel end.

De 64 waarden worden toegewezen aan +, -, de cijfers 0-9, de hoofdletters A-Z en de kleine letters a-z, in die volgorde. Het lengteteken gebruikt dezelfde tabel, dus een volle regel van 45 bytes begint met h, en de lege regel vóór end is één +. Omdat de opbouw identiek is, is de uitvoer even groot als bij uuencode: ongeveer 38% groter dan de invoer, lengtetekens en regeleinden meegerekend.

Waarom xxencode is ontstaan

Uitvoer van uuencode zit vol leestekens zoals [, ], \, ^ en !. IBM-mainframes gebruiken EBCDIC in plaats van ASCII, en deze tekens staan in verschillende EBCDIC-codetabellen op verschillende posities. Als mail via gateways tussen ASCII- en EBCDIC-netwerken ging, konden zulke tekens verkeerd worden omgezet en raakte het bestand beschadigd.

Letters, cijfers, plus en min zijn in elke EBCDIC-codetabel hetzelfde, dus xx-gecodeerde tekst wordt in beide richtingen foutloos omgezet. MIME bereikte later hetzelfde doel: ook Base64 gebruikt alleen letters, cijfers en een paar symbolen die in ASCII en EBCDIC identiek zijn. Xxencode werd nooit zo gangbaar als uuencode, en uiteindelijk heeft Base64 ze allebei vervangen.

Uuencode en xxencode naast elkaar

UuencodeXxencode
TekensASCII 32 tot 95, backtick voor nul+ - 0-9 A-Z a-z
Volle regel van 45 bytes begint metMh
Laatste regel vóór end`+
Veilig via EBCDIC-gatewaysNeeJa

Specificatie

Alfabet+ - 0-9 A-Z a-z
UitvoergrootteOngeveer 137%, inclusief lengteteken per regel
OpvullingRegels van maximaal 45 bytes
Standaardxxencode
HoofdlettergevoeligJa

Voorbeelden

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

Veelgestelde vragen

Hoe herken ik het verschil tussen uuencode en xxencode?
Kijk naar de gegevensregels. Xx-gecodeerde regels bevatten alleen letters, cijfers, plus en min, en volle regels beginnen met h. Uu-gecodeerde regels bevatten leestekens, en volle regels beginnen met M. Mislukt het decoderen hier met een ongeldig teken, probeer dan de pagina uuencode.
Schrijft de tool de begin- en end-regels?
Ja, standaard schrijft de tool begin 644 met de bestandsnaam die je invult, en de afsluitende regels. Zet de optie uit als je alleen de gecodeerde gegevensregels nodig hebt.
Kan ik een blok zonder begin-regel decoderen?

Ja. Zonder begin-regel wordt elke niet-lege regel als gegevens gedecodeerd. Met een begin-regel begint het decoderen daarna en stopt het bij de end-regel, zodat omringende tekst wordt genegeerd.

Wordt xxencode nog gebruikt?
Zelden. Je vindt het vooral in oude mail- en nieuwsarchieven. Voor nieuwe gegevens wordt Base64 vrijwel overal ondersteund, en het is net zo veilig voor kanalen die alleen tekst doorgeven.