Zo gebruik je het
- Typ of plak tekst in het invoerveld.
- Elke codering wordt bijgewerkt terwijl je typt: binair, octaal, decimaal, hex, de Base32-varianten, Base36 tot en met Base91, uuencode en xxencode.
- Vergelijk de uitvoer om te zien welke codering het kortst is of alleen tekens gebruikt die voor jou bruikbaar zijn.
- Klik op Kopiëren naast het resultaat dat je nodig hebt.
Elke codering vanuit één invoer
Elke codering op deze pagina zet dezelfde bytes om in een andere reeks tekens. Ze naast elkaar zien is de snelste manier om een codering voor een project te kiezen, een string uit een logbestand of configuratiebestand te herkennen, of te leren hoe de formaten van elkaar verschillen. Je tekst wordt als UTF-8-bytes gecodeerd, dus een letter met een accent telt als twee bytes en een Chinees teken als drie. Alles draait in je browser.
- Getallen per byte. Binair, octaal en decimaal schrijven elke byte afzonderlijk. Makkelijk te lezen, maar lang.
- Bitgroepen. Hex, Base32 (met Base32hex, Crockford en z-base-32), Base64 en Base64URL geven elk teken een vast aantal bits, zodat de uitvoerlengte alleen van de invoerlengte afhangt.
- Grote getallen. Base36, Base58 en Base62 behandelen de hele invoer als één groot geheel getal. Afhankelijk van de waarde kan de lengte één teken verschillen, en voorloopnulbytes blijven behouden als voorlooptekens.
- Blokken. Base45 maakt van 2 bytes 3 tekens, Ascii85, Z85 en Base85 maken van 4 bytes 5 tekens, en Base91 stopt 13 of 14 bits in elk paar tekens.
- Regels. uuencode en xxencode zijn oudere formaten voor e-mail en Usenet die gegevens in regels schrijven, die elk met een lengteteken beginnen.
Uitvoergrootte vergeleken
Hoeveel tekens elke codering per invoerbyte nodig heeft, en hoe lang een waarde van 32 bytes, zoals een SHA-256-hash of een publieke Ed25519-sleutel, daardoor wordt:
| Codering | Tekens per byte | 32 bytes worden |
|---|---|---|
| Base16 (hex) | 2,0 | 64 |
| Base32 | 1,6 | 56 (52 zonder opvulling) |
| Base36 | ongeveer 1,55 | 49 of 50 |
| Base45 | 1,5 | 48 |
| Base58 | ongeveer 1,37 | 43 of 44 |
| Base62 | ongeveer 1,34 | 42 of 43 |
| Base64 | ongeveer 1,33 | 44 (43 zonder opvulling) |
| Base85 | 1,25 | 40 |
| Base91 | ongeveer 1,23 | 39 of 40 |
Overstappen van hex naar Base64 bespaart een derde van de lengte. Nog een stap verder gaan, van Base64 naar Base91, levert maar ongeveer 8% extra op.
Welke codering kies je?
De kortste uitvoer is niet altijd de beste. Ascii85 kan aanhalingstekens en backslashes bevatten en Base91 dubbele aanhalingstekens, dus bij allebei kan escaping nodig zijn in JSON, HTML of shellopdrachten. Bedenk waar de string terecht moet komen:
- URL's en bestandsnamen: Base64URL, Base58 of Base62.
- Voorlezen of met de hand typen: Crockford Base32 of Base58, die tekens weglaten die op elkaar lijken.
- Systemen die geen onderscheid maken tussen hoofdletters en kleine letters: hex, Base32 of Base36.
- QR-codes: Base45, dat alleen de tekens van de alfanumerieke QR-modus gebruikt.
- Compacte tekst in PDF, Git of ZeroMQ: Ascii85, Base85 of Z85.
- Maximale compatibiliteit: Base64, dat door bijna elke programmeertaal en elk platform wordt ondersteund.
Veelgestelde vragen
Welke codering geeft de kortste uitvoer?
Van de coderingen op deze pagina is Base91 het compactst, met ongeveer 1,23 tekens per byte, gevolgd door Ascii85, Z85 en Base85 met 1,25. Base64 heeft ongeveer 1,33 tekens nodig, maar wordt veel breder ondersteund en is daarom meestal de standaardkeuze.
Waarom verschilt de lengte van Base58- en Base62-resultaten bij invoer van dezelfde grootte?
Ze zetten de hele invoer om als één groot getal, dus de lengte hangt af van de waarde en niet alleen van de grootte. Elke voorloopnulbyte voegt bovendien één voorloopteken toe. Hex, Base32 en Base64 geven bij hetzelfde aantal bytes altijd dezelfde lengte.
Kan ik op deze pagina een string decoderen?
Waarom is de binaire uitvoer zo lang?
Binair schrijft 8 cijfers voor elke byte, plus scheidingstekens, en is dus minstens vier keer zo lang als hex. Het is bedoeld om afzonderlijke bits te bekijken, niet om gegevens op te slaan of te verzenden.
Wordt mijn tekst naar een server gestuurd?
Nee. Alle coderingen worden door JavaScript in je browser berekend, en de tekst verlaat je apparaat nooit.