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

// Base36 - Alphanumeric encoding using digits 0-9 and letters A-Z

0 chars
0 chars
[ALPHANUMERIC]

Alphanumeric Only

Uses only letters A-Z and digits 0-9, safe for any system.

[COMPACT]

Space Efficient

More compact than decimal, less than hex for large numbers.

[URL-SAFE]

Web Friendly

No special characters, perfect for URLs and identifiers.

>> technical info

How Base36 Works

Base36 encoding uses 36 distinct characters (0-9 and A-Z) to represent data. It's commonly used for generating short, alphanumeric identifiers from large numbers. Each digit position represents a power of 36, making it more compact than decimal but still human-readable. Case-insensitive by default, making it ideal for systems where case sensitivity might be an issue.

Why Use Base36

  • Generate short, readable identifiers from numbers
  • Create URL-safe tokens without special characters
  • Compress large numbers into compact strings
  • Case-insensitive encoding for robust systems
  • Human-friendly alternative to hexadecimal

Base36 Examples

Numbers to Base36:
123 → 3F
1000 → RS
999999 → LFLR

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

Common Uses:
- YouTube video IDs
- Short URL identifiers
- Session tokens
- Product codes
- License keys

>> frequently asked questions

What is Base36?

Base36 is a positional numeral system that uses 36 distinct symbols: the digits 0-9 and letters A-Z. It provides a compact way to represent numbers using alphanumeric characters only.

Where is Base36 commonly used?

Base36 is widely used for generating short identifiers like YouTube video IDs, URL shorteners, session tokens, and product codes. It's popular because it creates human-readable, URL-safe strings without special characters.

Is Base36 case-sensitive?

Base36 is typically case-insensitive, using either uppercase (A-Z) or lowercase (a-z) letters. This makes it robust for systems where case might be normalized or ignored.

How does Base36 compare to other encodings?

Base36 is more compact than decimal (base10) but less compact than hexadecimal (base16) or base64. It strikes a balance between compactness and readability, using only alphanumeric characters which makes it universally compatible.

How do I decode a Base36 string online?

Paste your Base36 string (0-9 and A-Z) into the input above and press [FROM BASE36]. The tool converts it back into a decimal number — or, when you paste multiple tokens, into the original text via the bytes-of-the-number interpretation. A Base36 online decoder like this one runs entirely client-side, so you can safely decode session IDs, short URLs, or internal identifiers without uploading anything.

How is Base36 written in code (JavaScript, Python, Java)?

Every major language has Base36 built in — no library needed:
JavaScript: (123).toString(36)"3f"; parseInt("3f", 36)123.
Python: format(123, 'x') is hex — for Base36 use int(s, 36) to decode and a short helper to encode, since Python's stdlib has no to_base36.
Java: Long.toString(123, 36) and Long.parseLong("3f", 36).
Go: strconv.FormatInt(123, 36) / strconv.ParseInt("3f", 36, 64).

Why do YouTube and short URLs look like Base36 / Base62?

Very short, URL-safe identifiers are almost always produced by converting a big integer (a row ID in the database, or a hash) to a higher base. Base36 (0-9, A-Z, case-insensitive) fits the RFC 3986 unreserved set and survives case-preserving systems like email clients. Base62 (0-9, A-Z, a-z) is ~17% shorter but case-sensitive. YouTube IDs are 11-character Base64url (A-Z, a-z, 0-9, -, _) — a 64-symbol variant. The underlying math is always the same: n.toString(base). See /base62/ for the case-sensitive variant.

Base-36 vs Base 36 — is there a difference?

No — base-36, base 36, base36, and Base36 all refer to the same radix-36 positional system using digits 0-9 and letters A-Z. You will see all spellings in RFCs, documentation, and StackOverflow answers. This tool accepts any of them and applies case-insensitive decoding by default.

Base36 在线解码 / 编码怎么做?

Base36 在线解码:把 0-9 和 A-Z 组成的字符串贴入左侧输入框,点击 [FROM BASE36],工具会把它还原为十进制数字。
Base36 在线编码:输入数字或文本,点击 [TO BASE36],得到仅包含 36 个字符的紧凑串。
这种编码广泛用于 短链生成YouTube-style 短 ID发票号/订单号 等需要 URL 安全又易读的场景。整个过程在浏览器本地完成,ID 与密钥不会外传。

What is the maximum integer I can encode in Base36?

There is no theoretical maximum — Base36 is just a positional notation. In practice, you are bounded by your language's integer type. In JavaScript, Number.MAX_SAFE_INTEGER (2⁵³−1) fits in 11 Base36 characters. For larger values use BigInt in JS, int (arbitrary precision) in Python, or BigInteger in Java — all of which still support toString(36) style conversion. A UUID (128 bits) renders as 25 Base36 characters, a SHA-256 as 50.

COPIED!