Кодировщик и декодировщик Base64
Кодируйте текст в Base64 или декодируйте Base64 обратно в текст. С поддержкой UTF-8, обрабатывает символы вне ASCII.
- Вставьте текст или строку Base64 в поле.
- Нажмите Кодировать, чтобы преобразовать текст в Base64, или Декодировать, чтобы преобразовать Base64 обратно в текст.
- Отметьте URL-безопасный, если значение попадёт в URL или JWT — используются - и _, а заполнение опускается.
- Нажмите Копировать, чтобы поместить результат в буфер обмена.
Что это делает?
Base64 кодирует произвольные байты как 64 печатных ASCII-символа, чтобы транспорты, небезопасные для двоичных данных (строки JSON, URL, тела email, переменные окружения, HTTP Basic auth), могли передавать их без искажений. Этот инструмент корректно обрабатывает UTF-8 на входе — он сначала кодирует вашу строку в байты UTF-8, затем кодирует эти байты в Base64, так что не-ASCII символы возвращаются без потерь. Вывод примерно на 33% больше входа (каждые 3 байта становятся 4 символами).
Пример
Кодирование текста "Hello, world!":
SGVsbG8sIHdvcmxkIQ== Кодирование того же текста с включённым URL-безопасным режимом (заполнение удалено):
SGVsbG8sIHdvcmxkIQ Кодирование текста с эмодзи "café ☕":
Y2Fmw6kg4piV Почему моя строка Base64 не декодируется?
- Несоответствие standard и URL-безопасного. Строки с - или _ — это base64url, а не standard Base64. Переключите флажок URL-безопасный для соответствия.
- Отсутствует заполнение. Длина standard-строки Base64 должна быть кратна 4. SGVsbG8 не работает; SGVsbG8= работает. Дополните = до длины, кратной 4.
- Пробелы и переводы строк внутри значения. Некоторые системы переносят Base64 на 76 символов с помощью \n. Большинство декодеров это терпят, но более строгие — нет. Удалите пробелы перед декодированием.
- Случайно декодировано дважды. Декодирование U0dWc2JHOA== даёт SGVsbG8, который сам является строкой Base64. Если ваш вывод выглядит как ещё один Base64, декодируйте снова.
- Двоичные данные не в UTF-8. Если декодированные байты не являются допустимым UTF-8 (например, заголовок PNG), декодирование как текст не удастся или покажет мусор. Для двоичных данных используйте Base64-инструмент, понимающий файлы.
- Умные кавычки или видимое многоточие. Копирование из текстового процессора может заменить " на кудрявые кавычки или обрезать длинные строки многоточием. Сначала вставьте через редактор простого текста.
Часто задаваемые вопросы
В чём разница между standard Base64 и URL-безопасным Base64?
Standard Base64 (RFC 4648) использует + и / и дополняет =. URL-безопасный Base64 (base64url) заменяет + на - и / на _ и обычно опускает заполнение, чтобы строка проходила неизменной как путь URL или параметр запроса. JWT используют base64url. Выбирайте флажок URL-безопасный, когда вывод идёт в URL.
Правильно ли этот инструмент обрабатывает эмодзи и не-ASCII текст?
Да. Ввод сначала кодируется в байты UTF-8, затем эти байты кодируются в Base64. Декодирование обращает оба шага. Поэтому, если вы вставите "café" и декодируете результат, вы получите "café" обратно, а не mojibake. Многие старые Base64-инструменты предполагают Latin-1 и портят всё, что вне ASCII.
Могу ли я закодировать двоичный файл, например изображение или PDF?
Эта страница кодирует только текст. Чтобы закодировать файл в Base64, перетащите его в инструмент, читающий его как двоичный (или используйте консоль браузера с FileReader.readAsDataURL). Этот инструмент для кодирования строк — типичный случай использования при встраивании учётных данных, конфигурации или полей JSON.
Почему мой декодированный вывод выглядит как мусор?
Обычно ввод изначально не был Base64, или это был URL-безопасный Base64, декодированный как standard (или наоборот). Попробуйте переключить флажок URL-безопасный. Другая частая причина — декодирование строки, которая на самом деле является Base64-закодированными двоичными данными, а не текстом — в этом случае байты не являются допустимым UTF-8.
Имеет ли значение заполнение =?
Standard Base64 дополняет вывод так, чтобы его длина была кратна 4. Большинство декодеров принимают ввод без заполнения, но некоторые строгие его отклоняют. URL-безопасный Base64 обычно опускает заполнение. Если декодер жалуется, добавьте знаки = до длины, кратной 4, или удалите их все и повторите попытку.
Сохраняете ли вы текст, который я кодирую или декодирую?
Нет. Мы не сохраняем текст, который вы сюда вставляете. Ваш ввод удаляется в момент закрытия или обновления страницы — ничего не хранится, и нет записи того, что вы закодировали или декодировали. Для дополнительного уровня уверенности можно проверить developer tools вашего браузера.