b64 Разработчику ✓ Бесплатно Считает при вводе Строка не уходит на сервер UTF-8 и Windows-1251 Вариант для адресов

Кодировать и декодировать
Base64

Текст в base64 и обратно, в одном окне и без кнопки «Конвертировать». Кодировка исходного текста выбирается явно, а при декодировании определяется по байтам — поэтому русские буквы не превращаются в кракозябры.

Кодировка текста
Строки по
Текст
base64
Результат появится здесь
Перевод идёт в браузере: ни текст, ни строка не отправляются на сервер

Кодировка — вот из-за чего здесь всё ломается

Сам по себе base64 устроен просто: три байта данных записываются четырьмя символами из безопасного набора — латиница, цифры, плюс и косая черта. Это придумано для писем и адресов, где двоичные данные не проходят по дороге. Отсюда и рост объёма примерно на треть: каждые три байта занимают четыре символа.

Сложность не в этом. Base64 кодирует байты, а текст — это ещё не байты: сначала буквы надо в байты превратить, и вот тут начинаются расхождения. Слово «Привет» в UTF-8 занимает двенадцать байт, а в Windows-1251 — шесть, и строки base64 получаются совершенно разные. Возьмёте строку из письма или выгрузки 1С, раскодируете как UTF-8 — увидите кракозябры, хотя и строка цела, и инструмент исправен.

Поэтому кодировка здесь вынесена в настройки, а не спрятана. При кодировании вы выбираете, в какой кодировке считать исходный текст. При декодировании кодировку определяет сам инструмент по байтам результата: строгий разбор UTF-8 почти никогда не проходит для кириллицы в Windows-1251, и по этому признаку их видно надёжно. Если автоопределение всё же ошиблось, переключатель рядом позволит выбрать кодировку руками.

  • Кириллица в UTF-8 и Windows-1251, в обе стороны
  • Переносы, пробелы и префикс data-URI убираются сами
  • Потерянные знаки равенства в конце дописываются
  • Вариант для адресов и токенов — с дефисом и подчёркиванием
  • Ошибка показывается с местом в строке, а не словом «неверно»
Чего инструмент не делает Честно
Шифрование Base64 не защищает
Файлы целиком Только текст
Кодировки кроме двух UTF-8 и 1251
Проверка подписи JWT Это другая задача
Что делает Надёжно
Направление Оба, с обменом местами
Кодировка Выбор и определение
Алфавит Обычный и для адресов
Строки В одну, по 76 или 64

Частые вопросы

Нет. Перевод в обе стороны идёт прямо в браузере, ни одна буква никуда не уходит — можно вставлять рабочие строки из логов и писем. Проверить просто: отключите интернет, инструмент продолжит работать.
Значит, строку кодировали в другой кодировке. Переключите «Кодировка результата» с «Авто» на Windows-1251 — почти всегда помогает: в этой кодировке приходит всё, что выгружено из 1С, старых бухгалтерских программ и Excel под Windows. Если и так не читается, строка повреждена при копировании.
Нет, и это важно. Base64 — способ записи, а не защиты: раскодировать строку может кто угодно за секунду, ключ для этого не нужен. Пароли, токены и персональные данные в base64 лежат открытым текстом, просто выглядят непонятно. Для защиты нужно шифрование, это другая задача.
В обычном алфавите base64 есть плюс и косая черта, а в адресах страниц оба символа имеют собственный смысл и ломают ссылку. Поэтому существует второй алфавит, где вместо них дефис и подчёркивание — им закодированы, например, части токенов JWT. При декодировании переключать ничего не надо: алфавит определяется сам.
Дополнение до длины, кратной четырём: base64 кодирует данные по три байта, и если последняя порция неполная, строка добивается одним или двумя знаками равенства. В адресах и токенах их часто отбрасывают, поэтому при декодировании инструмент дописывает недостающие сам и отмечает это.
Здесь — нет, инструмент работает с текстом. Если вставить строку, в которой закодирован файл, он опознает формат и предложит скачать: показывать картинку буквами бессмысленно. Кодирование картинок в data-URI для CSS будет отдельным инструментом.