encode | decode | alfanumeriskt

> base36 | 0-9,A-Z | kompakt <

// Base36 – kompakt alfanumerisk kodning med siffror 0-9 och bokstäver A-Z

0 tecken
0 tecken
[ALFANUMERISKT]

Endast bokstäver och siffror

Använder enbart siffror 0-9 och bokstäver A-Z, kompatibelt med databaser, URL:er och textbaserade system.

[KOMPAKT]

Kompakt representation

Mer kompakt än decimalrepresentation för stora tal, samtidigt som strängarna är läsbara och lätta att dela.

[URL-SAFE]

URL-vänligt

Inga specialtecken – idealiskt för korta länkar, publika ID:n, produktkoder och licensnycklar.

>> teknisk info

Hur Base36 fungerar:

Base36 är ett positionssystem med basen 36 och använder 36 symboler (0-9 och A-Z). Varje position representerar en potens av 36, vilket gör det möjligt att representera stora tal som korta alfanumeriska strängar.

Base36-exempel:

Tal → Base36:
123 → 3F
1000 → RS
999999 → LFLR

Text → Base36 (via byte):
Hi → 1Q5
ABC → 3O0AF

Vanliga användningsområden:
- Video-/resurs-ID:n
- Korta URL:er
- Sessionstoken
- Produktkoder
- Licensnycklar

Varför använda Base36:

  • ▸Generera korta, läsbara ID:n från stora tal
  • ▸Skapa URL-säkra token utan specialtecken
  • ▸Komprimera numeriska värden till kompakta alfanumeriska strängar
  • ▸Ofta skiftlägesokänsligt, vilket minskar fel vid förändrad kapitalisering
  • ▸Mer människovänligt än vissa rena hexadecimala representationer

>> vanliga frågor

Vad är Base36?

Base36 är ett positionssystem som använder 36 olika symboler: siffrorna 0-9 och bokstäverna A-Z. Det ger ett kompakt sätt att representera tal med enbart alfanumeriska tecken.

Var används Base36 i praktiken?

Base36 används ofta för korta publika ID:n, korta URL:er, produktkoder och sessionstoken där man vill kombinera kompakt representation med god läsbarhet.

Är Base36 skiftlägeskänsligt?

I de flesta implementationer är Base36 inte skiftlägeskänsligt – A-Z och a-z behandlas likadant, vilket minskar fel orsakade av olika skrivsätt.

Hur står sig Base36 jämfört med andra kodningar?

Base36 är mer kompakt än decimal (bas 10), men mindre kompakt än hexadecimal (bas 16) eller Base64. Det ger en bra balans mellan kompakt representation och läsbarhet.

// Snabbreferens

DECHEXBase36Base62
0000
3523zz
362410A
100642s1c
10003e8rsG8
12345678975bcd1521i3v98M0kX
4294967295ffffffff1z141z34gfFC3

// Kodexempel

JavaScript  (123).toString(36)   // "3f"      parseInt("3f", 36)  // 123
Python      int("3f", 36)  // 123       (no built-in int -> base36; write a loop)
Java        Integer.toString(123, 36)   Long.parseLong("3f", 36)
PHP         base_convert("123", 10, 36)
Go          strconv.FormatInt(123, 36)   strconv.ParseInt("3f", 36, 64)

>> Fler frågor

F: Hur skriver jag Base36 i JavaScript, Python eller Java?

S: JavaScript, Java, PHP och Go har det inbyggt: (123).toString(36) ger "3f" och parseInt("3f", 36) ger 123 igen. I Python avkodar int(s, 36); för kodning skriver du en liten loop.

F: Vilket är det största heltalet jag kan koda i Base36?

S: Det finns inget teoretiskt maximum, Base36 är bara positionsskrift. I praktiken begränsar heltalstypen: i JavaScript är Number.MAX_SAFE_INTEGER (2⁵³−1) lika med 2gosa7pa2gv; för större värden används BigInt.

F: Varför ser YouTube-ID:n och korta länkar ut som Base36/Base62?

S: Korta ID:n skapas oftast genom att ett stort heltal (databas-ID eller hash) konverteras till en högre bas. Base36 ignorerar skiftläge; Base62 är ännu kortare men skiljer på versaler och gemener.

Andra språk

KOPIERAT!