> максимум | эффективности | сжатия <
// Кодирование Base91 с использованием 91 печатного символа ASCII для максимальной эффективности по размеру
Максимальная эффективность
Base91 обеспечивает один из лучших коэффициентов сжатия среди популярных схем кодирования, с накладными расходами около 23 %.
Печатные символы
Использует 91 печатный символ ASCII, что упрощает передачу данных через текстовые протоколы и журналы.
Экономия места
Создает более короткие строки, чем Base64 (≈33 % накладных расходов), что уменьшает размер логов и сообщений.
>> техническая информация
Как работает Base91:
Base91 использует 91 из 94 печатных символов ASCII (за исключением дефиса, обратной косой черты и апострофа) и упаковывает 13–14 битов в каждую пару выходных символов, достигая высокой плотности кодирования.
Пример:
"Hello" → >OwJh>A
Зачем использовать Base91:
- >Минимизация размера закодированных текстовых данных
- >Около 23 % накладных расходов против ~33 % у Base64
- >Используются только печатные символы ASCII
- >Подходит для каналов с ограниченной пропускной способностью
- >Увеличивает информационную плотность журналов и сообщений
>> часто задаваемые вопросы
Что такое кодирование Base91?
Base91 — это схема кодирования двоичных данных в текст, использующая 91 печатный символ ASCII и обеспечивающая более высокую эффективность сжатия по сравнению с традиционными схемами вроде Base64.
Когда стоит предпочесть Base91?
Base91 полезен, когда важен каждый байт: при передаче логов, данных по узким каналам связи или при хранении больших объемов текстовой информации.
Насколько Base91 эффективнее Base64?
Base64, как правило, добавляет около 33 % накладных расходов, в то время как Base91 — примерно 23 %. Это означает заметно меньший размер результирующих строк.
Насколько широко используется Base91?
Base91 менее распространен, чем Base64, однако реализован во многих библиотеках и языках и применяется в системах, где приоритетом является компактность текстового представления.
// Сравнение
| Название | bits/char | overhead |
|---|---|---|
| Base16 | 4 | 100% |
| Base32 | 5 | 60% |
| Base64 | 6 | 33.3% |
| Base85 | 6.41 | 24.8% |
| Base91 | 6.51 | 22.9% |
// Примеры кода
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(...)
>> Другие вопросы
В: Какие 91 символ использует basE91?
О: basE91 использует 91 из 94 печатных символов ASCII (без пробела): A–Z a–z 0–9 и ! # $ % & ( ) * + , . / : ; < = > ? @ [ ] ^ _ ` { | } ~ ". Исключены -, \ и '. Двойная кавычка " входит в алфавит и требует экранирования в JSON и оболочке.
В: Почему накладные расходы Base91 около 23 %?
О: При 91 символе каждый знак несёт log₂(91) ≈ 6,508 бита. 8 / 6,508 ≈ 1,229, то есть около 22,9 %. Для сравнения: Base32 — 60 %, Base64 — 33 %, Base85 — 25 %.
В: Когда Base91 лучше Base64?
О: Только когда важен каждый байт, например во встраиваемых системах или ограниченных протоколах. Base91 небезопасен для URL, отсутствует в стандартных библиотеках и слабо поддерживается. В обычных задачах лучше Base64.