Base36-koder og -dekoder

Konverter tekst, hex-byte eller filer til Base36, alfabetet med ti sifre og 26 bokstaver, og dekod Base36-strenger tilbake til byte. Utdata med store bokstaver er valgfritt.

Kjører helt i nettleseren din. Ingenting lastes opp.

Slik bruker du verktøyet

  1. Velg Kode for å gjøre tekst om til Base36, eller Dekode for å gjøre Base36 om til tekst igjen.
  2. Skriv eller lim inn inndataene, eller åpne en liten fil (opptil omtrent 20 KB).
  3. Slå på Store bokstaver hvis du trenger store bokstaver i utdataene.
  4. 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

Alfabet0-9 a-z
UtdatastørrelseOmtrent 155 % (konvertering som stort heltall)
UtfyllingIngen
StandardIngen formell standard
Skiller store og små bokstaverNei

Eksempler

Inndata (UTF-8)Utdata
Hello, World!fg3h7vqw7een6jwwnzmp
Base64.is76f8bz4veeatf7
你好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.

Finnes det en størrelsesgrense?
Ja, omtrent 20 KB, fordi konvertering av store tall tar lengre tid jo større inndataene er. For filer og store datamengder passer Base32 eller Base64 bedre.
Hvordan konverterer jeg et tall til Base36?
Bruk tallsystemkonverteren, som viser en desimalverdi i Base36 og andre tallsystemer. Denne siden behandler inndataene som tekst eller byte, så hvis du skriver 100, kodes tegnene 1, 0 og 0, ikke tallet hundre.