Encoder dan Decoder Base85

Base85 memadatkan empat byte menjadi lima karakter ASCII, lebih padat daripada rasio 3-ke-4 milik Base64, dengan memakai alfabet 85 karakter alih-alih 64. Alat ini mengimplementasikan varian Ascii85 dari Adobe, varian yang ada di dalam file PostScript dan PDF. Encoder selalu membungkus hasilnya dengan delimiter <~ dan ~>; decoder menerima input dengan atau tanpa keduanya.

Cara mengonversi Base85 (Ascii85)

  1. 1

    Pilih encode atau decode

    Encode mengubah byte mentah menjadi Ascii85; decode mengubah string Ascii85 kembali menjadi byte.

  2. 2

    Tempel teks Anda

    Tempel byte yang ingin di-encode atau string Ascii85 yang ingin di-decode ke kotak input.

  3. 3

    Encoder memecah per 4 byte

    Setiap blok 4 byte menjadi string Base85 5 karakter. Blok terakhir diberi padding lalu dipotong.

  4. 4

    Salin hasil

    Hasil Ascii85 dibungkus delimiter `<~` dan `~>`. Tempel lagi untuk men-decode-nya; delimiter dihapus otomatis.

Perbandingan overhead ukuran

Pengodean Karakter per 4 byte Overhead vs biner
Hex 8 +100%
Base64 5,33 (dibulatkan ke atas menjadi 8 dengan padding) +37%
Base85 5 +25%
Biner mentah 4 0

Jadi 1 MB biner menjadi 1,25 MB dalam Base85, 1,33 MB dalam Base64, dan 2 MB dalam hex.

Alfabet Ascii85

Ascii85 (Adobe): karakter ! hingga u (33-117 dalam ASCII), plus z sebagai pintasan untuk 4 byte nol. Ini pengodean standar dalam stream PostScript dan PDF, dibungkus sebagai <~...~>.

Z85 (ZeroMQ) dan alfabet RFC 1924 untuk IPv6 adalah penempatan lain dari gagasan 85 karakter yang sama. Alat ini tidak mengimplementasikannya, jadi string yang di-encode dengan varian tersebut akan salah didecode di sini.

Cara matematikanya bekerja

Setiap 4 byte dibaca sebagai integer 32-bit big-endian N. Lima karakter output adalah digit N dalam basis 85, dimulai dari digit paling signifikan. 85^5 = 4 437 053 125 lebih besar dari 2^32, sehingga 4 byte selalu muat dalam 5 karakter.

Kapan Ascii85 penting

Buka PDF apa pun di editor teks dan cari ASCII85Decode. Adobe memakainya sebagai filter untuk gambar dan font tertanam yang harus bertahan dalam transmisi 7-bit (sistem lama bergaya faks). Pengodean yang sama muncul di banyak file PostScript dan dalam transport biner yang aman untuk email.

Kasus khusus

  • Blok 4 byte nol semua: Ascii85 meng-encode-nya sebagai satu karakter z alih-alih !!!!!.
  • Blok parsial terakhir: diberi padding byte nol, lalu jumlah karakter output yang bersesuaian dipotong di akhir.

Pertanyaan yang Sering Diajukan

Output lebih kecil, ya. Kompatibel universal, tidak. Ascii85 berisi karakter seperti <, >, &, " yang perlu escaping di XML, JSON, dan URL. Sebagian besar tooling berbicara Base64 secara native.

Di dalam stream PostScript dan PDF, tempat wilayah ter-encode ditandai dengan <~ dan ~>. Penampil dan editor PDF menangani pengodean ini otomatis.

Tidak. Alat ini hanya mengimplementasikan Adobe Ascii85. Z85 (ZeroMQ) dan alfabet RFC 1924 untuk IPv6 menempatkan 85 karakter secara berbeda, jadi string yang di-encode dengan varian tersebut akan salah didecode di sini.

Keduanya menandai wilayah ter-encode sesuai konvensi Ascii85. Encoder selalu menambahkannya dan decoder menghapusnya otomatis jika ada. Anda juga bisa menempel string tanpa keduanya.

Alat Terkait

Alat ini tersedia dalam bahasa lain