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

ASCII в Base64: кодирование 7-битного текста

Кодирует текст в 7-битной кодировке ASCII. Символы вне ASCII заменяются на ? и подсчитываются, так что такие символы во вводе сразу заметны.

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

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

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

  1. Введите или вставьте текст в поле Ввод · текст. Кодировка уже переключена на ASCII.
  2. Base64 появится в поле Результат · Base64. Если в тексте есть символы вне ASCII, под инструментом появится предупреждение о том, сколько из них заменено на ?.
  3. Удалите или замените эти символы либо переключите поле Кодировка на UTF-8, если получатель его понимает.
  4. Скопируйте результат или скачайте его как base64.txt.

Обратное преобразование делает Base64 в ASCII.

Что считается ASCII

ASCII определяет 128 кодов, от 0 до 127, по одному байту на каждый со сброшенным старшим битом. Коды с 32 по 126 отведены под печатные символы: пробел, цифры, латинские буквы и распространённая пунктуация. Коды с 0 по 31 и 127 отведены под управляющие символы, например табуляцию (9), перевод строки (10) и возврат каретки (13).

Всё остальное, включая кириллицу, é, ß, €, типографские кавычки, неразрывные пробелы и эмодзи, к ASCII не относится. В тексте, скопированном из текстовых редакторов и веб-страниц, такие символы легко не заметить: чаще всего это типографские кавычки и тире. Их выловит предупреждение о замене.

Примеры

ТекстBase64Примечание
Hello, ASCII!SGVsbG8sIEFTQ0lJIQ==Совпадает с UTF-8
200 OKMjAwIE9L6 байт, без дополнения
{}[]<>e31bXTw+Пунктуация кодируется как обычные байты
a, табуляция, bYQliТабуляция: байт 09
line1 CR LF line2bGluZTENCmxpbmUy0D 0A посередине
user:passdXNlcjpwYXNzУчётные данные HTTP Basic auth
GrüßeR3I/P2U=2 символа заменены на ?
naïve cafébmE/dmUgY2FmPw==2 символа заменены на ?

Поскольку каждый символ кодируется одним байтом, размер легко предсказать: n символов дают 4 × ⌈n / 3⌉ символов Base64.

Почему ASCII и Base64 связаны

Base64 придумали для каналов, которые надёжно передавали только 7-битный ASCII. Классический пример: ранняя электронная почта (SMTP). Байты выше 127 по дороге могли срезаться или искажаться, поэтому двоичные вложения и неанглийский текст кодировали в подмножество ASCII, с которым справлялась любая система. Base64 существует до сих пор именно поэтому, и этим же объясняется его алфавит: 64 печатных символа, одинаковых во всех кодировках на основе ASCII и, кроме + и /, не имеющих особого смысла в распространённых форматах. Механика разобрана в статье как работает Base64.

Некоторые системы до сих пор ждут только ASCII, например старые интерфейсы и значения HTTP-заголовков, где обработка не-ASCII различается от сервера к серверу. Если закодировать текст здесь в режиме ASCII, ещё до отправки будет видно, безопасен ли он для них. Для заголовка Authorization есть отдельный генератор заголовка Basic Auth, который собирает значение целиком, вроде Basic dXNlcjpwYXNz.

ASCII в Base64 в коде

Python по умолчанию отвергает не-ASCII символы, и это удобная проверка:

import base64

base64.b64encode("200 OK".encode("ascii")).decode()   # 'MjAwIE9L'
"Grüße".encode("ascii")
# UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3
"Grüße".encode("ascii", errors="replace")              # b'Gr??e', like this tool

В JavaScript btoa() принимает любые символы с кодом до 255, так что латинские буквы из Latin-1 вроде ü он не поймает. Если строка должна быть чистым ASCII, сначала проверьте её через /^[\x00-\x7F]*$/.test(s). Подробнее на страницах Python и JavaScript.

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

Отличается ли ASCII в Base64 от UTF-8 в Base64?

Для чистого ASCII-текста нет. UTF-8 устроен так, что первые 128 символов сохраняют свои байтовые значения из ASCII, поэтому Hello, ASCII! в обоих случаях даёт SGVsbG8sIEFTQ0lJIQ==. Разница появляется, только если в тексте есть другие символы.

Что происходит с символами вроде ü или эмодзи?

В ASCII для них нет кода, поэтому каждый превращается в ? (байт 3F), а инструмент сообщает, сколько символов заменено. Grüße кодируется в R3I/P2U=, а это декодируется в Gr??e.

Результат в Base64 тоже состоит из ASCII?

Да. Все 65 символов, которые использует Base64 (A–Z, a–z, 0–9, +, / и =), входят в печатные символы ASCII, поэтому Base64 проходит через системы, которые умеют работать только с 7-битным текстом.

Можно ли закодировать управляющие символы, например табуляцию и перевод строки?

Да. Это тоже ASCII (коды 0–31), и они кодируются как любой другой байт: a, табуляция, b дают YQli.