Загрузить файл
  1. base64hub
  2. Текстовые инструменты
  3. Кодировщик Base64

Кодировщик Base64: закодировать текст в Base64 онлайн

Введите или вставьте текст, и Base64 появится прямо по ходу ввода. По умолчанию UTF-8, поэтому диакритика, кириллица, иероглифы и эмодзи кодируются правильно. Есть URL-safe, дополнение и перенос строк.

Бесплатно без регистрации и ограничений Локально ничего не загружается 27 кодировок, по умолчанию UTF-8 Обновлено 27 окт. 2026 г.
Ввод 0 BРезультат 0 BРазмер –

Обработка идёт в браузере. Эта страница не может никуда отправить ваши данные – откуда мы это знаем

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

  1. Введите или вставьте текст в поле Ввод · текст. Страница открывается с примером; чтобы начать с чистого листа, нажмите Очистить.
  2. Base64 появляется в поле Результат · Base64 прямо по ходу ввода. Для очень больших данных можно снять флажок На лету и нажимать Выполнить.
  3. Выставьте параметры, которых ждёт принимающая сторона: URL-safe (- _), Без дополнения (=), Перенос строк и Кодировка. Значения по умолчанию (стандартный алфавит, с дополнением, одна строка, UTF-8) подходят большинству API.
  4. Нажмите Скопировать результат или Скачать, чтобы сохранить результат в base64.txt.
  5. Чтобы проверить обратное преобразование, нажмите Поменять местами: Base64 переедет в поле ввода, а инструмент переключится на декодирование.

Под кнопками показан размер входных данных в байтах, размер результата и прирост в процентах. Это удобно, когда у поля есть ограничение по длине.

Как работает кодирование Base64

Base64 работает с байтами, поэтому сначала текст превращается в байты по какой-то кодировке (здесь это UTF-8, если не выбрать другую). Затем кодировщик берёт байты по три, то есть по 24 бита, делит их на четыре 6-битных числа и записывает каждое одним символом из 64-символьного алфавита: A–Z, a–z, 0–9, + и /.

Классический пример с текстом Man: байты 4D 61 6E превращаются в TWFu. Если в последней группе только один или два байта, результат дополняется знаками =: Ma становится TWE=, а M превращается в TQ==. Весь разбор по шагам есть в статье как работает Base64, а в материале про дополнение объясняется, когда = можно отбросить.

Для n байт длина результата всегда равна 4 × ⌈n / 3⌉ символов, то есть примерно на 33% больше входа. Калькулятор размера Base64 посчитает это для любого объёма, а статья о накладных расходах Base64 объясняет, когда это важно. Раскодировать Base64 может кто угодно, так что он ничего не скрывает; прежде чем класть в него секреты, прочитайте про кодирование и шифрование.

Параметры кодирования

ПараметрЧто меняетКогда нужен
URL-safe (- _)+ заменяется на -, а / на _ (RFC 4648, раздел 5)URL, query-строки, имена файлов, cookie, JWT. В кодировщике Base64URL он включён по умолчанию
Без дополнения (=)Убирает = в концеJWT и большинство URL-safe форматов; всё, что и так отрезает =
Перенос строк: 76 (MIME)Вставляет перевод строки каждые 76 символовТела писем и вложения (кодировщик MIME)
Перенос строк: 64 (PEM)Вставляет перевод строки каждые 64 символаСертификаты и ключи между строками -----BEGIN и -----END
КодировкаВ какие байты превращается каждый символ перед кодированиемUTF-8, если получатель не ждёт UTF-16, Windows-1251, Shift_JIS или другую устаревшую кодировку

Примеры с Unicode, эмодзи и URL-safe

Все значения ниже получены модулем base64 из Python и совпадают с тем, что выдаёт этот инструмент.

ВводНастройкиBase64
HelloUTF-8SGVsbG8=
Hello, world!UTF-8SGVsbG8sIHdvcmxkIQ==
caféUTF-8Y2Fmw6k=
caféISO-8859-1Y2Fm6Q==
€UTF-84oKs
€Windows-1252gA==
👋UTF-88J+Riw==
👋UTF-8, URL-safe, без дополнения8J-Riw
ПриветUTF-80J/RgNC40LLQtdGC
ПриветWindows-1251z/Do4uXy

Одно и то же слово даёт разный Base64 в разных кодировках, потому что различаются байты: é в UTF-8 занимает два байта (C3 A9), а в Latin-1 один (E9). Эмодзи с машущей рукой занимает четыре байта UTF-8, поэтому в Base64 он превращается в 8 символов, и два из них приходятся на дополнение.

Кодировки и символы, которые в них не помещаются

UTF-8 умеет представить любой символ Unicode, поэтому ничего не теряет. Остальные 26 кодировок в списке (UTF-16LE/BE, UTF-32LE, ASCII, кодовые страницы ISO-8859 и Windows, KOI8-R/U, CP866, Shift_JIS, EUC-JP, GBK, Big5 и EUC-KR) нужны для систем, которые их ожидают. Если в тексте есть символ, которого нет в выбранной кодировке, он заменяется на ?, а предупреждение сообщает, сколько символов заменено. Например, € в ISO-8859-1 кодируется как Pw==, то есть как обычный знак вопроса.

Для строк Windows и .NET, а также для PowerShell выбирайте UTF-16LE (причины объясняет страница UTF-16 в Base64). ASCII нужен, когда система должна отвергать всё, что выходит за пределы 7-битного текста (ASCII в Base64).

Перенос строк

Обычный Base64 записывается одной длинной строкой, и именно такая нужна для JSON, HTTP-заголовков, URL и переменных окружения. В почте строки по 76 символов (RFC 2045), в файлах PEM по 64. Параметр переноса вставляет переводы строки \n на заданной ширине. Декодеры, включая декодер на этом сайте, пропускают переводы строк, так что результат с переносами декодируется в те же байты. Правила MIME разобраны в статье Base64 в электронной почте.

Частые ошибки при кодировании

  • В конец пробирается перевод строки. echo Hello | base64 выводит SGVsbG8K, потому что echo добавляет \n. Сам текст Hello кодируется в SGVsbG8=. Используйте printf '%s', а при вставке сюда проверьте, что число байтов на входе такое, как вы ожидаете.
  • btoa() падает на Unicode. В браузере btoa("Grüße 👋") выбрасывает InvalidCharacterError, потому что btoa принимает только символы Latin-1. Сначала переведите строку в байты UTF-8, как во фрагменте ниже.
  • У получателя другая кодировка. Если вы кодируете в UTF-8, а другая сторона декодирует как Latin-1, café превращается в café. Договоритесь о кодировке или выберите здесь кодировку получателя.
  • Двойное кодирование. Base64 от SGVsbG8= даёт U0dWc2JHOD0=. Если значение декодируется в очередной Base64, где-то в цепочке его закодировали второй раз.
  • + и / ломают URL. В query-строке + читается как пробел. Включите URL-safe, возьмите кодировщик Base64URL или примените к значению percent-encoding.

Кодирование Base64 в JavaScript, Python и командной строке

В браузерном JavaScript строку переводят в байты UTF-8 через TextEncoder, а затем кодируют байты. Новые браузеры умеют вызывать bytes.toBase64() напрямую (Uint8Array.toBase64).

const bytes = new TextEncoder().encode("Grüße 👋");
let bin = "";
for (const b of bytes) bin += String.fromCharCode(b);
btoa(bin);                                   // "R3LDvMOfZSDwn5GL"

// Node.js
Buffer.from("Grüße 👋", "utf8").toString("base64");     // "R3LDvMOfZSDwn5GL"
Buffer.from("👋", "utf8").toString("base64url");         // "8J-Riw"

В Python b64encode принимает байты и возвращает байты:

import base64

base64.b64encode("Grüße 👋".encode("utf-8")).decode("ascii")
# 'R3LDvMOfZSDwn5GL'
base64.urlsafe_b64encode("👋".encode()).rstrip(b"=").decode()
# '8J-Riw'

В Linux и macOS команда base64 кодирует стандартный ввод:

printf '%s' 'Grüße 👋' | base64
base64 -w 0 file.bin > file.b64

Первая команда выводит R3LDvMOfZSDwn5GL. GNU base64 в Linux по умолчанию переносит вывод на 76-й колонке, а -w 0 это отключает; версия в macOS без явной просьбы не переносит. Другие языки и тонкости: Base64 в JavaScript, Node.js, Python и PHP.

Нужно закодировать файл?

Картинки, PDF и любые другие файлы кодирует инструмент для файлов, в том числе в data URI и JSON.

Файл в Base64

Вопросы и ответы

Как закодировать строку в Base64?

Вставьте строку в поле ввода выше и скопируйте результат из поля вывода. В коде строку сначала переводят в байты UTF-8 и кодируют уже их: base64.b64encode(s.encode()) в Python, Buffer.from(s).toString("base64") в Node.js.

Почему Base64 заканчивается на = или ==?

Base64 работает блоками по 3 байта. Если длина входных данных не кратна 3, последний блок неполный, и = отмечает недостающие байты: один =, если осталось 2 байта, ==, если остался 1. Подробнее в статье про дополнение.

Почему другой сервис выдаёт другой Base64 для того же текста?

Обычно дело в незаметной разнице в байтах: перевод строки в конце (echo его добавляет), другая кодировка (UTF-8, Latin-1 или UTF-16) или нормализация Unicode. Сравните число байтов на входе, которое показано под инструментом.

Можно ли спрятать пароль с помощью Base64?

Нет. У Base64 нет ключа, и раскодировать его может кто угодно за секунду. Base64 нужен для передачи данных, а для защиты используйте настоящее шифрование или хеширование. См. кодирование и шифрование.

Насколько вырастает текст после кодирования в Base64?

Каждые 3 байта превращаются в 4 символа, поэтому результат примерно на 33% больше, плюс переносы строк, если они включены. 100 байт UTF-8 дают 136 символов.