Encoder dan Decoder Base36

Ubah teks, byte hex, atau file ke Base36, alfabet berisi sepuluh digit dan 26 huruf, lalu dekode string Base36 kembali menjadi byte. Keluaran huruf besar bersifat opsional.

Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah.

Cara menggunakan

  1. Pilih Enkode untuk mengubah teks menjadi Base36, atau Dekode untuk mengubah Base36 kembali menjadi teks.
  2. Ketik atau tempel masukan Anda, atau klik Buka file untuk file kecil (hingga sekitar 20 KB).
  3. Aktifkan Huruf besar jika Anda memerlukan huruf kapital pada keluaran.
  4. Salin hasilnya atau unduh sebagai file.

Apa itu Base36?

Base36 menulis data dengan sepuluh digit dan 26 huruf alfabet Latin, yaitu 0-9 diikuti a-z. Ini adalah alfabet terbesar yang dapat disusun dari digit dan huruf tanpa membedakan huruf besar-kecil, sehingga string Base36 tetap utuh di sistem yang mengubah atau mengabaikan huruf besar-kecil. Setiap karakter membawa sekitar 5,17 bit, sehingga keluarannya kira-kira 1,55 kali ukuran masukan, sedikit lebih pendek daripada Base32.

Karena 36 bukan pangkat dua, byte tidak bisa begitu saja dipotong menjadi kelompok bit. Sebagai gantinya, alat ini membaca seluruh masukan sebagai satu bilangan besar tak bertanda lalu mengonversinya ke basis 36, metode yang sama dengan yang dipakai Base58. Sebuah bilangan akan kehilangan byte nol di depannya, sehingga setiap byte nol ditulis sebagai 0 di depan dan dipulihkan saat dekode. Aritmetika ini menjadi lambat untuk masukan besar, sehingga alat ini menerima masukan hingga sekitar 20 KB.

Penggunaan Base36

  • ID pendek. Penyingkat URL, nomor pesanan, dan kode tiket sering menampilkan ID database numerik dalam basis 36. Reddit, misalnya, memakai basis 36 untuk ID postingan dan komentarnya.
  • Tempat yang tidak peka huruf besar-kecil. Nama DNS dan sebagian sistem file mengabaikan huruf besar-kecil. Karena alasan inilah IPFS memakai bentuk Base36 untuk sebagian identifier dalam alamat gateway subdomain.
  • Bilangan dalam kode. Basis 36 adalah radix tertinggi yang didukung secara bawaan oleh sebagian besar bahasa pemrograman untuk konversi bilangan bulat.

Jika huruf besar-kecil tetap terjaga dan Anda menginginkan string alfanumerik terpendek, Base62 lebih ringkas.

Bilangan Base36 dalam kode

Halaman ini mengenkode byte. Untuk mengonversi bilangan bulat, gunakan fungsi bawaan bahasa pemrograman Anda atau konverter basis bilangan:

// JavaScript
(1000000).toString(36)        // 'lfls'
parseInt('lfls', 36)          // 1000000
123456789012345678901234567890n.toString(36)   // BigInt untuk nilai besar

# Python
int('lfls', 36)               # 1000000
# tidak ada fungsi bawaan untuk arah sebaliknya

parseInt kehilangan presisi di atas Number.MAX_SAFE_INTEGER; untuk nilai yang lebih besar, akumulasikan sendiri digitnya ke dalam BigInt.

Spesifikasi

Alfabet0-9 a-z
Ukuran keluaranSekitar 155% (konversi bilangan besar)
PaddingTidak ada
StandarTidak ada standar resmi
Peka huruf besar-kecilTidak

Contoh

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

Pertanyaan yang sering diajukan

Apakah Base36 peka huruf besar-kecil?

Tidak. Keluarannya menggunakan huruf kecil secara default, dan opsi Huruf besar mengubahnya menjadi huruf kapital. Decoder menerima keduanya.

Mengapa alat lain memberikan hasil Base36 yang berbeda?

Base36 tidak memiliki standar resmi. Sebagian alat mengenkode bilangan, sebagian lagi mengenkode byte, dan cara mereka memperlakukan byte nol di depan pun berbeda. Alat ini mengenkode byte masukan sebagai satu bilangan besar dan menulis setiap byte nol di depan sebagai 0.

Apakah ada batas ukuran?
Ada, sekitar 20 KB, karena konversi bilangan besar makin lama seiring bertambahnya ukuran masukan. Untuk file dan data besar, Base32 atau Base64 lebih cocok.
Bagaimana cara mengubah bilangan ke Base36?
Gunakan konverter basis bilangan, yang menampilkan nilai desimal dalam Base36 dan basis lainnya. Halaman ini memperlakukan masukan sebagai teks atau byte, sehingga mengetik 100 akan mengenkode karakter 1, 0, dan 0, bukan bilangan seratus.