Zo gebruik je het
- Kies Coderen om tekst om te zetten naar Base36, of Decoderen om Base36 terug te zetten naar tekst.
- Typ of plak je invoer, of open een klein bestand (tot ongeveer 20 KB).
- Zet Hoofdletters aan als je hoofdletters in de uitvoer nodig hebt.
- Kopieer het resultaat of download het als bestand.
Wat is Base36?
Base36 schrijft gegevens met de tien cijfers en de 26 letters van het Latijnse alfabet: 0-9 gevolgd door a-z. Het is het grootste alfabet dat je uit cijfers en letters kunt samenstellen zonder op hoofd- en kleine letters te letten, dus Base36-strings blijven heel in systemen die hoofdletters veranderen of negeren. Elk teken draagt ongeveer 5,17 bits, waardoor de uitvoer ongeveer 1,55 keer zo groot is als de invoer, iets korter dan bij Base32.
Omdat 36 geen macht van twee is, kunnen de bytes niet gewoon in bitgroepen worden verdeeld. In plaats daarvan leest de tool de hele invoer als één groot getal zonder teken en zet dat om naar grondtal 36, dezelfde methode die Base58 gebruikt. Een getal zou zijn nulbytes vooraan verliezen, dus elke nulbyte vooraan wordt geschreven als een 0 aan het begin en bij het decoderen hersteld. Deze berekening wordt traag bij grote invoer, dus de tool accepteert tot ongeveer 20 KB.
Waar Base36 wordt gebruikt
- Korte ID's. URL-verkorters, ordernummers en ticketcodes tonen een numerieke database-ID vaak in grondtal 36. Reddit gebruikt bijvoorbeeld grondtal 36 voor de ID's van posts en reacties.
- Hoofdletterongevoelige plekken. DNS-namen en sommige bestandssystemen negeren het verschil tussen hoofdletters en kleine letters. Daarom gebruikt IPFS een Base36-vorm van sommige identificatoren in de adressen van subdomeingateways.
- Getallen in code. Grondtal 36 is het hoogste grondtal dat de meeste programmeertalen standaard ondersteunen voor het omzetten van gehele getallen.
Blijven hoofdletters en kleine letters behouden en wil je de kortste alfanumerieke string, dan is Base62 compacter.
Base36-getallen in code
Deze pagina codeert bytes. Om een geheel getal om te zetten, gebruik je de ingebouwde functies van je programmeertaal of de talstelselconverter:
// JavaScript
(1000000).toString(36) // 'lfls'
parseInt('lfls', 36) // 1000000
123456789012345678901234567890n.toString(36) // BigInt voor grote waarden
# Python
int('lfls', 36) # 1000000
# voor de omgekeerde richting is er niets ingebouwd
parseInt verliest precisie boven Number.MAX_SAFE_INTEGER; bouw bij grotere waarden het getal zelf cijfer voor cijfer op als BigInt.
Specificatie
| Alfabet | 0-9 a-z |
|---|---|
| Uitvoergrootte | Ongeveer 155% (conversie als groot getal) |
| Opvulling | Geen |
| Standaard | Geen formele standaard |
| Hoofdlettergevoelig | Nee |
Voorbeelden
| Invoer (UTF-8) | Uitvoer |
|---|---|
Hello, World! | fg3h7vqw7een6jwwnzmp |
Base64.is | 76f8bz4veeatf7 |
你好 | 2h5exfqm65 |
Veelgestelde vragen
Is Base36 hoofdlettergevoelig?
Nee. De uitvoer is standaard in kleine letters, en met de optie Hoofdletters schakel je over op hoofdletters. De decoder accepteert beide.
Waarom geeft een andere tool een ander Base36-resultaat?
Base36 heeft geen formele standaard. Sommige tools coderen een getal, andere coderen bytes, en ze gaan verschillend om met nulbytes vooraan. Deze tool codeert de invoerbytes als één groot getal en schrijft elke nulbyte vooraan als een 0.