Så använder du verktyget
- Välj Koda för att göra om text till Base36, eller Avkoda för att göra om Base36 till text.
- Skriv eller klistra in indatan, eller öppna en liten fil (upp till cirka 20 kB).
- Slå på Versaler om du behöver stora bokstäver i utdatan.
- 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
| Alfabet | 0-9 a-z |
|---|---|
| Utdatastorlek | Cirka 155 % (konvertering med stora tal) |
| Utfyllnad | Ingen |
| Standard | Ingen formell standard |
| Skiftlägeskänslig | Nej |
Exempel
| Indata (UTF-8) | Utdata |
|---|---|
Hello, World! | fg3h7vqw7een6jwwnzmp |
Base64.is | 76f8bz4veeatf7 |
你好 | 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.