encode | decode | alphanumeric

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

// Base36 – 0-9 と A-Z を使ったコンパクトな英数字エンコード

0 文字
0 文字
[ALPHANUMERIC]

英数字のみ

0-9 と A-Z のみを使用するため、多くのシステム・データベース・URL で安全に利用できます。

[COMPACT]

コンパクトな表現

大きな数値を 10 進数より短い英数字文字列として表現でき、共有やログ表示に便利です.

[URL-SAFE]

URL 向けに最適化

特殊文字を含まないため、短縮 URL、公開 ID、プロダクトコード、ライセンスキーなどに最適です。

>> 技術情報

Base36 の仕組み:

Base36 は基数 36 の位置表記法で、36 個の記号(0-9, A-Z)を使ってデータを表現します。各桁は 36 の累乗を表し、大きな数値を短い英数字文字列に圧縮できます。

Base36 の例:

数値 → Base36:
123 → 3F
1000 → RS
999999 → LFLR

テキスト → Base36(バイト経由):
Hi → 1Q5
ABC → 3O0AF

主な用途:
- 動画 ID
- 短縮 URL
- セッショントークン
- 製品コード
- ライセンスキー

Base36 を使う理由:

  • ▸大きな数値から短く読みやすい ID を生成できる
  • ▸特殊文字を含まない URL セーフなトークンを作成できる
  • ▸数値をコンパクトな英数字文字列に圧縮できる
  • ▸多くの実装で大文字小文字を区別しないため、表記揺れに強い
  • ▸16 進数より人間にとって扱いやすいケースがある

>> よくある質問

Base36 とは?

Base36 は 36 個の記号(数字 0-9 と英字 A-Z)を用いる位置表記の数値システムです。英数字のみで数値をコンパクトに表現できます。

Base36 はどこで使われますか?

Base36 は短い公開 ID、短縮 URL、セッショントークン、製品コードなど、人が読むケースも多い識別子に広く使われています。

Base36 は大文字小文字を区別しますか?

多くの実装では Base36 は大文字小文字を区別しません。A-Z と a-z は同じとして扱われるため、表記ゆれや入力ミスに強くなります。

Base36 は他のエンコード方式と比べてどうですか?

Base36 は 10 進数よりコンパクトですが、16 進数や Base64 ほどではありません。英数字のみを使うことで、互換性と読みやすさのバランスを取っています。

// クイックリファレンス

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

// コード例

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)

>> その他の質問

Q: JavaScript・Python・JavaでBase36はどう書きますか?

A: JavaScript、Java、PHP、Goには標準機能があります。(123).toString(36) は "3f"、parseInt("3f", 36) は123に戻ります。Pythonでは int(s, 36) でデコードでき、エンコードは短いループで書きます。

Q: Base36でエンコードできる最大の整数は?

A: 理論上の上限はなく、Base36は単なる位取り記法です。実際には整数型が制限します。JavaScriptの Number.MAX_SAFE_INTEGER(2⁵³−1)は 2gosa7pa2gv で、それ以上は BigInt を使います。

Q: YouTubeや短縮URLのIDがBase36/Base62に見えるのはなぜ?

A: 短いIDは、大きな整数(DBのIDやハッシュ)をより大きな基数に変換して作るのが一般的です。Base36は大文字小文字を区別せず、Base62はさらに短くなりますが区別します。

他の言語

コピーしました!