Все кодировки сразу

Введите или вставьте текст один раз и сравните его представления рядом: двоичное, шестнадцатеричное, семейство Base32, Base58, Base64, семейство Base85, Base91 и другие. У каждого результата своя кнопка «Копировать».

Работает полностью в браузере. Данные никуда не загружаются.

Как пользоваться

  1. Введите или вставьте текст в поле ввода.
  2. Все кодировки обновляются по мере ввода: двоичная, восьмеричная, десятичная, hex, варианты Base32, от Base36 до Base91, а также uuencode и xxencode.
  3. Сравните результаты, чтобы найти самый короткий или тот, в котором есть только допустимые для вас символы.
  4. Нажмите «Копировать» рядом с нужным результатом.

Все кодировки из одного поля ввода

Каждая кодировка на этой странице превращает одни и те же байты в свой набор символов. Сравнение рядом — самый быстрый способ выбрать кодировку для проекта, распознать строку, найденную в логе или конфигурационном файле, или разобраться, чем отличаются форматы. Текст кодируется как байты UTF-8, поэтому кириллическая буква или буква с диакритическим знаком занимает два байта, а китайский иероглиф — три. Всё работает в вашем браузере.

  • Числа для каждого байта. Двоичная, восьмеричная и десятичная записи представляют каждый байт отдельно. Их легко читать, но они получаются длинными.
  • Группы битов. В hex, Base32 (вместе с Base32hex, Crockford и z-base-32), Base64 и Base64URL каждый символ несёт фиксированное число битов, поэтому длина результата зависит только от длины входных данных.
  • Большие числа. Base36, Base58 и Base62 рассматривают все входные данные как одно большое целое число. В зависимости от значения длина может отличаться на один символ, а ведущие нулевые байты сохраняются как ведущие символы.
  • Блоки. Base45 превращает 2 байта в 3 символа, Ascii85, Z85 и Base85 — 4 байта в 5 символов, а Base91 упаковывает 13 или 14 битов в каждую пару символов.
  • Строки. uuencode и xxencode — старые форматы электронной почты и Usenet, которые записывают данные строками, причём каждая строка начинается с символа длины.

Сравнение размера результата

Сколько символов нужно каждой кодировке на один входной байт и какой длины становится 32-байтовое значение, например хеш SHA-256 или открытый ключ Ed25519:

КодировкаСимволов на байтДлина для 32 байт
Base16 (hex)2,064
Base321,656 (52 без дополнения)
Base36около 1,5549 или 50
Base451,548
Base58около 1,3743 или 44
Base62около 1,3442 или 43
Base64около 1,3344 (43 без дополнения)
Base851,2540
Base91около 1,2339 или 40

Переход от hex к Base64 сокращает длину на треть. Дальнейший переход от Base64 к Base91 экономит лишь около 8%.

Какую кодировку выбрать

Самый короткий результат не всегда лучший. В Ascii85 могут встречаться кавычки и обратные косые черты, а в Base91 — двойные кавычки, поэтому в JSON, HTML или командах оболочки их может понадобиться экранировать. Подумайте, где будет использоваться строка:

  • URL и имена файлов: Base64URL, Base58 или Base62.
  • Чтение вслух или ввод вручную: Crockford Base32 или Base58, в которых нет похожих друг на друга символов.
  • Системы, не учитывающие регистр: hex, Base32 или Base36.
  • QR-коды: Base45, в котором используются только символы буквенно-цифрового режима QR.
  • Компактный текст в PDF, Git или ZeroMQ: Ascii85, Base85 или Z85.
  • Максимальная совместимость: Base64, который поддерживают почти все языки и платформы.

Часто задаваемые вопросы

Какая кодировка даёт самый короткий результат?

Из кодировок на этой странице самая компактная — Base91, около 1,23 символа на байт, за ней идут Ascii85, Z85 и Base85 с 1,25 символа. Base64 требует около 1,33 символа, но поддерживается гораздо шире, поэтому обычно его и выбирают по умолчанию.

Почему длина результатов Base58 и Base62 различается при входных данных одного размера?

Эти кодировки преобразуют все входные данные как одно большое число, поэтому длина зависит от его значения, а не только от размера. Кроме того, каждый ведущий нулевой байт добавляет один ведущий символ. Hex, Base32 и Base64 всегда дают одинаковую длину для одинакового числа байтов.

Можно ли декодировать строку на этой странице?
Эта страница только кодирует. Чтобы узнать, что представляет собой неизвестная строка, вставьте её в определитель кодировки. Чтобы перевести строку из одной кодировки в другую, воспользуйтесь конвертером кодировок.
Почему двоичный результат такой длинный?

В двоичной записи на каждый байт приходится 8 цифр плюс разделители, поэтому она как минимум в четыре раза длиннее hex. Она нужна, чтобы рассматривать отдельные биты, а не для хранения или передачи данных.

Отправляется ли мой текст на сервер?

Нет. Все кодировки вычисляются кодом JavaScript в вашем браузере, и текст не покидает ваше устройство.