Base64 кодирование
Инструмент кодирует и декодирует Base64 с поддержкой кириллицы и эмодзи, превращает файлы и картинки в Data URI. При декодировании находит ошибки — недопустимый символ, обрезанную строку, лишние = — и подчёркивает их место. Пригодится, чтобы прочитать данные из API, заголовка или токена, встроить небольшую иконку в CSS.
Чтобы получить Data URI картинки для CSS или <img>, удобнее отдельная страница «Картинка в Base64».
Как пользоваться
Выберите формат и действие, затем вставьте текст или откройте файл. Результат обновляется сам во время ввода. В режиме «Base64 → Кодировать» можно открыть любой файл, например картинку: она закодируется целиком, а с настройкой «Data URI» получится строка для src или url() в CSS.
При декодировании алфавит base64url и префикс data:…;base64, распознаются автоматически, пробелы и переносы строк пропускаются. Если внутри оказался не текст, а картинка или архив, инструмент назовёт тип данных и предложит скачать файл.
Данные обрабатываются в браузере и не отправляются на сервер. Размер — до 2 МБ.
Для вашего удобства рекомендую использовать полноэкранный режим.
Текст
Привет, basicweb! 👋
Base64
Для кодирования включите JavaScript. Пример: текст Привет в Base64 через UTF-8 — 0J/RgNC40LLQtdGC.
Что такое Base64
Base64 записывает любые байты 64 печатными символами: латинскими буквами, цифрами, + и /. Так двоичные данные можно передать там, где допускается только текст: в JSON, в письме, в атрибуте HTML. Каждые 3 байта превращаются в 4 символа, поэтому результат примерно на треть длиннее исходника. Если байтов не хватает до тройки, в конце ставится = или ==.
Base64 — это кодирование, а не шифрование: любой может раскодировать строку обратно. Не используйте его, чтобы скрыть пароли или персональные данные.
Base64 и кириллица в JavaScript
Встроенные функции btoa() и atob() работают только с символами Latin-1, поэтому btoa('Привет') выбрасывает ошибку. Текст сначала переводят в байты UTF-8 — так же поступает и этот инструмент:
const bytes = new TextEncoder().encode('Привет')
const base64 = btoa(String.fromCharCode(...bytes)) // "0J/RgNC40LLQtdGC"
const decoded = Uint8Array.from(atob(base64), (char) => char.charCodeAt(0))
new TextDecoder().decode(decoded) // "Привет"Для больших данных передавайте байты в String.fromCharCode частями: у функции ограничено число аргументов.
base64url и Data URI
- base64url заменяет
+на-,/на_и обычно опускает=: такую строку можно вставить в адрес без кодирования. Этот вариант используется в JWT. - Data URI встраивает файл прямо в разметку или стили:
data:image/png;base64,iVBORw0…. Это удобно для маленьких иконок; большие картинки лучше подключать отдельным файлом — Base64 увеличивает размер, а встроенные данные не кэшируются отдельно.
URL-кодирование и экранирование HTML
Это другие задачи с отдельными инструментами: «URL-кодирование» переводит кириллицу и спецсимволы в %XX для адресов, а «Экранирование HTML» заменяет <, & и кавычки кодами для вставки текста в разметку.
Вопросы и ответы
Почему после декодирования получились «кракозябры»?
Исходный текст был в другой кодировке, например Windows-1251, или внутри вообще не текст. Инструмент читает данные строго как UTF-8: если это не удаётся, он сообщит о двоичных данных и предложит скачать файл.
Можно ли раскодировать JWT?
Токен состоит из трёх частей base64url, разделённых точками. Вставьте отдельно первую или вторую часть — получится JSON заголовка или данных. Подпись при этом не проверяется.
Безопасно ли вставлять токены и ключи?
Данные обрабатываются в вашем браузере и не отправляются на сервер. Но помните, что Base64 не защищает данные: токен остаётся действующим, пока не истечёт.