Kodare och avkodare för Base36

Konvertera text, hexbyte eller filer till Base36, alfabetet med tio siffror och 26 bokstäver, och avkoda Base36-strängar tillbaka till byte. Utdata med versaler är valfritt.

Körs helt i din webbläsare. Inget laddas upp.

Så använder du verktyget

  1. Välj Koda för att göra om text till Base36, eller Avkoda för att göra om Base36 till text.
  2. Skriv eller klistra in indatan, eller öppna en liten fil (upp till cirka 20 kB).
  3. Slå på Versaler om du behöver stora bokstäver i utdatan.
  4. Kopiera resultatet eller ladda ned det som en fil.

Vad är Base36?

Base36 skriver data med de tio siffrorna och det latinska alfabetets 26 bokstäver, 0-9 följt av a-z. Det är det största alfabet du kan bygga av siffror och bokstäver om skiftläget ignoreras, så Base36-strängar klarar sig i system som ändrar eller ignorerar skiftläge. Varje tecken bär ungefär 5,17 bitar, vilket gör utdatan ungefär 1,55 gånger så stor som indatan, något kortare än Base32.

Eftersom 36 inte är en tvåpotens kan bytena inte bara delas upp i bitgrupper. I stället läser verktyget hela indatan som ett enda stort tal utan tecken och konverterar det till bas 36, samma metod som Base58 använder. Ett tal skulle tappa sina inledande nollbyte, så varje sådan byte skrivs som en inledande 0 och återställs vid avkodning. Den här aritmetiken blir långsam för stora indata, så verktyget accepterar upp till cirka 20 kB.

Var Base36 används

  • Korta ID:n. URL-förkortare, ordernummer och ärendekoder visar ofta ett numeriskt databas-ID i bas 36. Reddit använder till exempel bas 36 för sina ID:n för inlägg och kommentarer.
  • Miljöer som inte skiljer på skiftläge. DNS-namn och vissa filsystem ignorerar skillnaden mellan versaler och gemener. Därför använder IPFS en Base36-form av vissa identifierare i adresser till underdomänsgatewayer.
  • Tal i programkod. Bas 36 är den högsta talbas som de flesta programspråk har inbyggt stöd för vid konvertering av heltal.

Om skiftläget bevaras och du vill ha den kortaste alfanumeriska strängen är Base62 mer kompakt.

Base36-tal i programkod

Den här sidan kodar byte. För att konvertera ett heltal använder du ditt språks inbyggda funktioner eller talbaskonverteraren:

// JavaScript
(1000000).toString(36)        // 'lfls'
parseInt('lfls', 36)          // 1000000
123456789012345678901234567890n.toString(36)   // BigInt för stora värden

# Python
int('lfls', 36)               # 1000000
# det finns ingen inbyggd funktion för den omvända riktningen

parseInt tappar precision över Number.MAX_SAFE_INTEGER; för större värden får du själv ackumulera siffrorna i en BigInt.

Specifikation

Alfabet0-9 a-z
UtdatastorlekCirka 155 % (konvertering med stora tal)
UtfyllnadIngen
StandardIngen formell standard
SkiftlägeskänsligNej

Exempel

Indata (UTF-8)Utdata
Hello, World!fg3h7vqw7een6jwwnzmp
Base64.is76f8bz4veeatf7
你好2h5exfqm65

Vanliga frågor

Är Base36 skiftlägeskänslig?

Nej. Utdatan skrivs som standard med gemener, och alternativet Versaler byter till stora bokstäver. Avkodaren accepterar båda.

Varför ger ett annat verktyg ett annat Base36-resultat?

Base36 har ingen formell standard. Vissa verktyg kodar ett tal, andra kodar byte, och de hanterar inledande nollbyte olika. Det här verktyget kodar indatans byte som ett enda stort tal och skriver varje inledande nollbyte som en 0.

Finns det en storleksgräns?
Ja, ungefär 20 kB, eftersom konverteringen med stora tal tar längre tid ju större indatan är. För filer och stora datamängder passar Base32 eller Base64 bättre.
Hur konverterar jag ett tal till Base36?
Använd talbaskonverteraren, som visar ett decimalt värde i Base36 och andra talbaser. Den här sidan behandlar indatan som text eller byte, så om du skriver 100 kodas tecknen 1, 0 och 0, inte talet hundra.