Cara menggunakan
- Pilih Enkode untuk mengubah teks atau byte menjadi basE91, atau Dekode untuk mengubah basE91 kembali menjadi data.
- Ketik atau tempel masukan Anda, atau klik Buka file. Atur Masukan sebagai ke Hex untuk byte mentah.
- Hasilnya diperbarui saat Anda mengetik. Saat mendekode, pilih keluaran Teks atau Hex.
- Salin hasilnya atau unduh sebagai file.
Apa itu basE91?
basE91 adalah pengodean biner ke teks yang dirancang oleh Joachim Henke. Pengodean ini memakai 91 dari 95 karakter ASCII yang dapat dicetak: semuanya kecuali spasi, apostrof ', tanda hubung -, dan garis miring terbalik \.
basE91 tidak bekerja dengan blok byte berukuran tetap. Encoder mengumpulkan bit masukan dalam buffer dan mengambil 13 bit sekaligus. Jika nilai 13 bit itu lebih besar dari 88, nilai tersebut ditulis sebagai dua karakter. Jika nilainya 88 atau kurang, bit ke-14 ikut diambil, dan hasilnya tetap muat karena dua karakter basis 91 dapat menyatakan 91 × 91 = 8.281 nilai yang berbeda. Dengan demikian, setiap 13 atau 14 bit menjadi tepat 2 karakter.
Hasilnya adalah overhead paling banyak sekitar 23%, dan bisa turun hingga sekitar 14% untuk data dengan deretan panjang byte nol. Data acak atau terkompresi menghasilkan ukuran yang mendekati batas atas.
Perbandingan basE91 dengan pengodean lain
| Pengodean | Karakter | Ukuran keluaran |
|---|---|---|
| Hex | 16 | 2 × masukan |
| Base58 | 58 | sekitar 1,37 × masukan |
| Base64 | 64 | 1,33 × masukan |
| Base85 / Ascii85 | 85 | 1,25 × masukan |
| basE91 | 91 | sekitar 1,14 hingga 1,23 × masukan |
Untuk membandingkan panjang keluaran sebenarnya bagi data Anda sendiri, ketikkan data tersebut di Semua pengodean.
Hal yang perlu diperhatikan
- Escape. Alfabetnya memuat tanda kutip ganda
", yang harus di-escape di JSON dan sebagian besar literal string, serta<,>, dan&, yang harus di-escape di HTML dan XML. basE91 tidak aman untuk URL. - Dekode seluruh string. Karena bit-bitnya melintasi batas antarkarakter, potongan yang diambil dari tengah string basE91 tidak dapat didekode secara terpisah.
- Dukungan. basE91 bukan standar IETF. Pembuatnya menerbitkan implementasi referensi dalam C dan bahasa lain, dan port tersedia untuk sebagian besar platform, misalnya paket
base91untuk Python.
Spesifikasi
| Alfabet | 91 karakter ASCII yang dapat dicetak |
|---|---|
| Ukuran keluaran | Sekitar 123% |
| Padding | Tidak ada |
| Standar | basE91 (Joachim Henke) |
| Peka huruf besar-kecil | Ya |
Contoh
| Masukan (UTF-8) | Keluaran |
|---|---|
Hello, World! | >OwJh>}AQ;r@@Y?F |
Base64.is | xD7gXm^?t#5 |
你好 | I_5k7aPE |
Pertanyaan yang sering diajukan
Apakah basE91 lebih kecil daripada Base64?
Ya. Base64 selalu menambah 33%, sedangkan basE91 menambah paling banyak sekitar 23%, dan lebih sedikit lagi untuk data dengan banyak byte nol. Untuk file 1 MB, penghematannya kira-kira 100 KB.
Karakter apa saja yang dipakai basE91?
A-Z dan a-z, angka 0-9, serta simbol !#$%&()*+,./:;<=>?@[]^_`{|}~". Spasi, apostrof, tanda hubung, dan garis miring terbalik tidak dipakai.Mengapa ditulis basE91?
Begitulah pembuatnya mengeja nama tersebut. basE91 dan Base91 merujuk pada pengodean yang sama, dan halaman ini mengikuti algoritma aslinya.
Apakah spasi kosong mengganggu dekode?
Tidak. Spasi dan jeda baris bukan bagian dari alfabet, sehingga decoder di sini mengabaikannya. Anda dapat langsung menempelkan teks basE91 yang dibungkus per baris.