Slik bruker du verktøyet
- Velg Kode for å gjøre tekst om til Base36, eller Dekode for å gjøre Base36 om til tekst igjen.
- Skriv eller lim inn inndataene, eller åpne en liten fil (opptil omtrent 20 KB).
- Slå på Store bokstaver hvis du trenger store bokstaver i utdataene.
- Kopier resultatet eller last det ned som en fil.
Hva er Base36?
Base36 skriver data med de ti sifrene og de 26 bokstavene i det latinske alfabetet, 0-9 etterfulgt av a-z. Det er det største alfabetet du kan bygge av sifre og bokstaver uten å skille mellom store og små bokstaver, så Base36-strenger overlever systemer som endrer eller ignorerer bokstavstørrelsen. Hvert tegn bærer omtrent 5,17 bit, noe som gjør utdataene omtrent 1,55 ganger så store som inndataene, litt kortere enn Base32.
Fordi 36 ikke er en potens av to, kan bytene ikke bare deles opp i bitgrupper. I stedet leser verktøyet hele inndataene som ett stort, fortegnsløst tall og konverterer det til grunntall 36, samme metode som Base58 bruker. Et tall ville miste de innledende nullbytene, så hver av dem skrives som en innledende 0 og gjenopprettes ved dekoding. Denne aritmetikken blir treg for store inndata, så verktøyet godtar opptil omtrent 20 KB.
Hvor Base36 brukes
- Korte ID-er. URL-forkortere, ordrenumre og saksnumre viser ofte en numerisk database-ID med grunntall 36. Reddit bruker for eksempel grunntall 36 for ID-ene til innlegg og kommentarer.
- Steder som ikke skiller mellom store og små bokstaver. DNS-navn og enkelte filsystemer ignorerer bokstavstørrelse. IPFS bruker av den grunn en Base36-form av enkelte identifikatorer i adressene til subdomene-gatewayer.
- Tall i kode. Grunntall 36 er det høyeste grunntallet de fleste programmeringsspråk støtter innebygd for konvertering av heltall.
Hvis store og små bokstaver bevares og du vil ha den korteste alfanumeriske strengen, er Base62 mer kompakt.
Base36-tall i kode
Denne siden koder byte. For å konvertere et heltall bruker du de innebygde funksjonene i programmeringsspråket ditt eller tallsystemkonverteren:
// JavaScript
(1000000).toString(36) // 'lfls'
parseInt('lfls', 36) // 1000000
123456789012345678901234567890n.toString(36) // BigInt for store verdier
# Python
int('lfls', 36) # 1000000
# det finnes ingen innebygd funksjon for motsatt retning
parseInt mister presisjon over Number.MAX_SAFE_INTEGER; for større verdier må du selv bygge opp tallet som en BigInt, siffer for siffer.
Spesifikasjon
| Alfabet | 0-9 a-z |
|---|---|
| Utdatastørrelse | Omtrent 155 % (konvertering som stort heltall) |
| Utfylling | Ingen |
| Standard | Ingen formell standard |
| Skiller store og små bokstaver | Nei |
Eksempler
| Inndata (UTF-8) | Utdata |
|---|---|
Hello, World! | fg3h7vqw7een6jwwnzmp |
Base64.is | 76f8bz4veeatf7 |
你好 | 2h5exfqm65 |
Ofte stilte spørsmål
Skiller Base36 mellom store og små bokstaver?
Nei. Utdataene har små bokstaver som standard, og valget Store bokstaver bytter til store. Dekoderen godtar begge deler.
Hvorfor gir et annet verktøy et annet Base36-resultat?
Base36 har ingen formell standard. Noen verktøy koder et tall, andre koder byte, og de behandler innledende nullbyte forskjellig. Dette verktøyet koder inndatabytene som ett stort tall og skriver hver innledende nullbyte som en 0.