Base64-кодировщик и декодировщик для текста, изображений, Data URI и JWT-пейлоадов
Кодируйте UTF-8 текст и изображения в Base64 в браузере и декодируйте Base64 обратно в текст или просматривайте как изображение. Китайский, эмодзи и многострочный ввод работают, но поддерживается только стандартный Base64: URL-safe варианты и сырые JWT-сегменты нужно сначала преобразовать, а двоичные данные декодируются как нечитаемый UTF-8.
Что этот Base64-инструмент умеет — и чего не умеет
UTF-8 текст в обе стороны
Ввод кодируется сразу: TextEncoder переводит текст в UTF-8 байты, затем Base64, поэтому китайский, японский и эмодзи выходят корректно, а не вызывают ошибку, которую btoa даёт на не-Latin-1 символах.
Изображения становятся Data URI
Переключитесь на Image, выберите файл, и он читается как data:image/...;base64,... . Вставьте эту Data URI обратно в поле Base64 для предпросмотра; недопустимый источник покажет сообщение вместо битой картинки.
Только стандартный Base64, без URL-safe
Символы - и _ отклоняются, поэтому JWT-пейлоады и URL-safe токены нужно переписать в + и /. Отсутствующий padding = допускается, а пробелы, табуляции и переводы строк игнорируются.
Декодирование считает данные UTF-8
Base64 двоичных данных декодируется как UTF-8 текст и даёт символы замены вместо ошибки. Чисто туда и обратно проходит только UTF-8 текст; изображения и прочие байты теряются.
Работает локально, но огромный ввод падает
Ничего не загружается; текст преобразуется при каждом нажатии. Ограничения размера нет, и очень большой текст может вызвать ошибку стека вызовов, потому что все байты разом разворачиваются в 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, без сообщения в интерфейсе.

