SS Тулбокс
SS Тулбокс
Все данные обрабатываются локально

Base64-кодировщик и декодировщик для текста, изображений, Data URI и JWT-пейлоадов

Кодируйте UTF-8 текст и изображения в Base64 в браузере и декодируйте Base64 обратно в текст или просматривайте как изображение. Китайский, эмодзи и многострочный ввод работают, но поддерживается только стандартный Base64: URL-safe варианты и сырые JWT-сегменты нужно сначала преобразовать, а двоичные данные декодируются как нечитаемый UTF-8.

Тип конвертации
Текст
Base64
Процесс кодирования Base64 делит любые двоичные данные на группы по 3 байта (24 бита) и делит эти 24 бита на 4 6-битных блока. Каждый 6-битный блок сопоставляется с символом ASCII, поэтому 3 байта двоичных данных преобразуются в 4 печатных символа. Недостатком является, конечно, то, что объем будет в 4/3 раза больше оригинала. Этот инструмент использует UTF-8 для кодирования символов.

Что этот Base64-инструмент умеет — и чего не умеет

  1. UTF-8 текст в обе стороны

    Ввод кодируется сразу: TextEncoder переводит текст в UTF-8 байты, затем Base64, поэтому китайский, японский и эмодзи выходят корректно, а не вызывают ошибку, которую btoa даёт на не-Latin-1 символах.

  2. Изображения становятся Data URI

    Переключитесь на Image, выберите файл, и он читается как data:image/...;base64,... . Вставьте эту Data URI обратно в поле Base64 для предпросмотра; недопустимый источник покажет сообщение вместо битой картинки.

  3. Только стандартный Base64, без URL-safe

    Символы - и _ отклоняются, поэтому JWT-пейлоады и URL-safe токены нужно переписать в + и /. Отсутствующий padding = допускается, а пробелы, табуляции и переводы строк игнорируются.

  4. Декодирование считает данные UTF-8

    Base64 двоичных данных декодируется как UTF-8 текст и даёт символы замены вместо ошибки. Чисто туда и обратно проходит только UTF-8 текст; изображения и прочие байты теряются.

  5. Работает локально, но огромный ввод падает

    Ничего не загружается; текст преобразуется при каждом нажатии. Ограничения размера нет, и очень большой текст может вызвать ошибку стека вызовов, потому что все байты разом разворачиваются в btoa.

Вопросы о Base64

Поддерживается URL-safe Base64 (- и _)?

Нет. Работает только алфавит + /; - или _ даёт InvalidCharacterError. Замените - на +, _ на / и допишите до кратности 4 перед вставкой.

Можно ли здесь декодировать JWT-пейлоад?

Только после преобразования. Сегмент пейлоада — URL-safe Base64 без padding, и эта страница не разбивает токен и не добавляет символы. Вставьте переписанный сегмент; результат — текст, а не разобранный JSON.

Можно ли преобразовывать файлы в Base64 и обратно?

Только изображения, и для файлов лишь в одну сторону: загрузка изображения даёт Data URI. Выбора текстовых файлов нет, и декодирование никогда не создаёт файл для скачивания.

Почему китайский и эмодзи работают, хотя btoa обычно падает?

Код переводит текст в UTF-8 байты через TextEncoder перед btoa и восстанавливает через TextDecoder. btoa напрямую на 中文 даёт InvalidCharacterError; здесь — нет.

Что происходит с двоичным (не UTF-8) Base64?

Он декодируется как UTF-8, поэтому произвольные байты превращаются в символы замены; ошибки и сообщения нет. Чтобы сохранить байты, используйте предпросмотр изображения или отдельный декодер.

Есть ли ограничение размера и загружаются ли данные?

Ничего не загружается, явного лимита нет; преобразование синхронное на каждое нажатие. Очень большой ввод может дать «Maximum call stack size exceeded», а несколько MB могут подвесить вкладку.

Как обрабатываются padding, пробелы и неверный ввод?

Отсутствующий padding = допускается, atob игнорирует пробелы, табуляции и переводы строк. Длина % 4 == 1 или символ вне алфавита дают InvalidCharacterError, без сообщения в интерфейсе.

Связанные инструменты
SponsorMindElixir