> encode | decode | ascii85 <
// Kodowanie Base85 (ASCII85) dla wydajnej reprezentacji danych binarnych
Wysoka wydajność
Bardziej wydajne niż Base64 (~25% krótsze przy tych samych danych).
Przetwarzanie lokalne
Wszystkie konwersje w przeglądarce. Dane nie opuszczają urządzenia.
Standard Adobe
Używa ASCII85 z ogranicznikami <~ ~>, zgodny z PostScript.
>> informacje techniczne
Jak działa Base85:
Base85 używa 85 drukowalnych znaków ASCII do kodowania danych binarnych. 4 bajty → 5 znaków; wydajniejsze niż Base64.
Przykład:
"Hello" → <~87cURD]i~>
Dlaczego używać Base85:
- >Wydajniejsze niż Base64 (~25% krótsze)
- >Standard w PostScript/PDF
- >Dobry współczynnik kompresji
- >Tylko drukowalne znaki ASCII
- >Skrót 'z' dla czterech zerowych bajtów
>> często zadawane pytania
Czym jest kodowanie Base85?
Base85 (ASCII85) to kodowanie binarno‑tekstowe z użyciem 85 drukowalnych znaków ASCII, bardziej wydajne niż Base64.
Dlaczego wydajniejsze niż Base64?
Base85: 4 bajty→5 znaków (80%) vs Base64: 3→4 (75%); ok. 25% krótsze.
Co oznaczają ograniczniki <~ ~>?
To element standardu Adobe ASCII85, wyznaczają początek i koniec danych.
Co znaczy znak 'z'?
Skrót oznaczający cztery kolejne zera bajtowe (\x00\x00\x00\x00).
// Krótka ściąga
| Wejście | ASCII85 | Base64 |
|---|---|---|
| Man | 9jqo^ | TWFuIA== |
| sure. | F*2M7/c | c3VyZS4= |
| Hello | 87cURDZ | SGVsbG8= |
| \0\0\0\0 | z | AAAAAA== |
// Przykłady kodu
Adobe <~87cURDZ~> (PostScript / PDF, z = four zero bytes)
Python base64.a85encode(b'Hello') -> b'87cURDZ'
base64.b85encode(b'Hello') -> b'NM&qnZv' (RFC 1924 / Git alphabet)
Z85 ZeroMQ, safe to embed in source strings
Size 4 bytes -> 5 chars (Base64: 4 bytes -> 5.33 chars)
>> Więcej pytań
P: Czym różnią się ASCII85, Base85 i Z85?
O: Wszystkie trzy opierają się na tej samej matematyce (4 bajty → 5 znaków), ale mają różne alfabety: ASCII85 (Adobe, PDF/PostScript) używa znaków od ! do u, ramki <~ … ~> i z dla czterech zerowych bajtów; Base85 (RFC 1924, Git) ma inny alfabet; Z85 (ZeroMQ) — alfabet bezpieczny do osadzania w kodzie źródłowym.
P: Jak duży jest Base85 w porównaniu z Base64?
O: 4 bajty dają dokładnie 5 znaków, a w Base64 ok. 5,33. Narzut spada z 33% do 25%, czyli dla tych samych danych jest ok. 25% mniej znaków.
P: Czy Base85 jest bezpieczny w adresach URL?
O: Nie. ASCII85 zawiera znaki takie jak & , ; ' " < >, które trzeba escapować w URL, HTML lub powłoce. Do URL użyj Base64url, do kodu źródłowego raczej Z85.