> maksymalna | efektywność | kompresja <
// Kodowanie Base91 z użyciem 91 drukowalnych znaków ASCII dla najwyższej efektywności przestrzennej
Maksymalna efektywność
Base91 zapewnia jedną z najlepszych efektywności kompresji wśród popularnych schematów kodowania base, z narzutem rzędu 23%.
Tylko znaki drukowalne
Korzysta z 91 drukowalnych znaków ASCII, co ułatwia wykorzystanie w logach, protokołach tekstowych i narzędziach CLI.
Oszczędność miejsca
Bardziej kompaktowe niż Base64 (około 33% narzutu), co pozwala ograniczyć rozmiar odpowiedzi HTTP, plików logów i innych ładunków tekstowych.
>> informacje techniczne
Jak działa Base91:
Base91 używa 91 z 94 drukowalnych znaków ASCII (z pominięciem myślnika, odwrotnego ukośnika i apostrofu) i pakuje 13–14 bitów w każdą parę znaków wyjściowych, zapewniając wysoką gęstość kodowania.
Przykład:
"Hello" → >OwJh>A
Dlaczego warto używać Base91:
- >Minimalizacja rozmiaru zakodowanych danych tekstowych
- >Około 23% narzutu zamiast ~33% w przypadku Base64
- >Wykorzystuje wyłącznie drukowalne znaki ASCII
- >Lepszy wybór przy ograniczonej przepustowości lub drogim magazynie
- >Wyższa gęstość informacji w logach i wiadomościach
>> najczęściej zadawane pytania
Czym jest kodowanie Base91?
Base91 to schemat kodowania danych binarnych do postaci tekstowej, który wykorzystuje 91 drukowalnych znaków ASCII i oferuje lepszą efektywność kompresji niż tradycyjne schematy, np. Base64.
Kiedy sięgać po Base91 zamiast Base64?
Base91 jest szczególnie przydatne, gdy liczy się każdy bajt – przy dużych logach, komunikacji przez wąskie łącza lub przechowywaniu dużych ilości tekstu w zakodowanej formie.
Jak Base91 wypada na tle Base64 pod względem rozmiaru?
Base64 zwykle zwiększa rozmiar danych o ok. 33%, podczas gdy Base91 ogranicza ten narzut do ok. 23%, generując krótsze ciągi znaków.
Czy Base91 jest szeroko wspierane?
Base91 nie jest tak powszechne jak Base64, ale istnieje wiele implementacji w popularnych językach programowania i jest stosowane w projektach, gdzie priorytetem jest kompaktowa reprezentacja tekstu.
// Porównanie
| Nazwa | bits/char | overhead |
|---|---|---|
| Base16 | 4 | 100% |
| Base32 | 5 | 60% |
| Base64 | 6 | 33.3% |
| Base85 | 6.41 | 24.8% |
| Base91 | 6.51 | 22.9% |
// Przykłady kodu
Alphabet A-Z a-z 0-9 ! # $ % & ( ) * + , . / : ; < = > ? @ [ ] ^ _ ` { | } ~ "
Excluded - \ ' and space (3 of the 94 printable ASCII characters)
Bits log2(91) = 6.508 bits/char -> 8 / 6.508 = 1.229 (~23% overhead)
Python pip install base91 base91.encode(b'Hello')
JS npm i base91 base91.encode(...)
>> Więcej pytań
P: Jakich 91 znaków używa basE91?
O: basE91 używa 91 z 94 drukowalnych znaków ASCII (bez spacji): A–Z a–z 0–9 oraz ! # $ % & ( ) * + , . / : ; < = > ? @ [ ] ^ _ ` { | } ~ ". Wykluczone są -, \ i '. Cudzysłów " jest w alfabecie i trzeba go escapować w JSON lub powłoce.
P: Dlaczego narzut Base91 wynosi ok. 23%?
O: Przy 91 symbolach każdy znak niesie log₂(91) ≈ 6,508 bita. 8 / 6,508 ≈ 1,229, czyli ok. 22,9% narzutu. Dla porównania: Base32 60%, Base64 33%, Base85 25%.
P: Kiedy Base91 jest lepszy od Base64?
O: Tylko gdy liczy się każdy bajt, np. w systemach wbudowanych lub ograniczonych protokołach. Base91 nie jest bezpieczny dla URL, nie ma go w standardowych bibliotekach i ma małe wsparcie. Na co dzień lepszy jest Base64.