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

Base64 в UTF-8: декодирование Base64 в текст Unicode

Вставьте Base64 и прочитайте его как текст в UTF-8. Если в байтах есть ошибки UTF-8, инструмент отметит проблемные места символом � и выведет предупреждение, так что неверная кодировка или обрезанная строка сразу видны.

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

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

Как декодировать Base64 в UTF-8

  1. Вставьте Base64 в поле Ввод · Base64. В поле Кодировка уже выбран UTF-8.
  2. Результат появится в поле Результат · текст. Строка статуса показывает число байтов и определённый тип содержимого.
  3. Если в строке статуса написано «Часть байтов не читается как UTF-8», текст в другой кодировке. Попробуйте Автоопределение, Windows-1252 или UTF-16LE.
  4. Скопировать результат копирует текст, Скачать сохраняет декодированные байты без изменений.

Для обратного направления есть UTF-8 в Base64.

Примеры

Base64Результат в UTF-8Что показывает
8J+YgA==😀Один эмодзи, 4 байта
4oKs€3 байта, дополнение не нужно
bmHDr3ZlIGNhZsOpnaïve caféБуквы с диакритикой, по 2 байта
77u/SGk=Hi5 байтов: метка порядка байтов, затем Hi
Y2Fm6Q==caf�E9 означает é в Latin-1, в UTF-8 недопустим
8J+Y�Эмодзи, обрезанный после 3 из 4 байтов
Y2Fmw4PCqQ==caféКорректный UTF-8 уже испорченного текста

Последние три строки показывают случаи, которые стоит узнавать с первого взгляда.

Некорректный UTF-8 и символ замены

Правила UTF-8 строгие: байт больше 7F должен входить в последовательность из 2, 3 или 4 байтов с фиксированным шаблоном. Байты, которые нарушают шаблон, прочитать как UTF-8 нельзя. Декодер заменяет каждую битую последовательность на U+FFFD (�) и добавляет пометку «Часть байтов не читается как UTF-8. Попробуйте другую кодировку». Молча ничего не выбрасывается, поэтому каждый � указывает точное место проблемы.

Почти всегда причина одна из двух:

  • Другая кодировка. В Y2Fm6Q== лежат байты 63 61 66 E9, то есть café в ISO-8859-1 и Windows-1252. Смените Кодировку, и текст появится. На странице декодера Base64 собраны типичные симптомы для каждой кодировки.
  • Обрезанная строка. Если Base64 обрезали, например из-за ограничения длины столбца в базе данных или строки лога, последний символ может лишиться части байтов. 8J+YgA== кодирует целый эмодзи, а 8J+Y тот же эмодзи без последнего байта, и декодируется он в один �. Ищите полное значение в источнике.

Двойная кодировка (é и ’)

Если вместо é выводится é, вместо ü появляется ü, а вместо типографского апострофа ’, декодер не виноват. Где-то раньше байты UTF-8 прочитали как Windows-1252 и снова сохранили в UTF-8, и каждый особый символ превратился в два-три неправильных. Base64 честно хранит этот испорченный текст: Y2Fmw4PCqQ== содержит корректный UTF-8 для семибайтовой строки café.

Часто такую строку можно починить в коде, повторив ошибку в обратную сторону: закодировать текст в Windows-1252 и прочитать байты как UTF-8. Но по-настоящему исправлять нужно систему, которая его записала.

Метка порядка байтов (BOM)

Некоторые редакторы, особенно в Windows, начинают файлы UTF-8 с метки порядка байтов, то есть с байтов EF BB BF. В Base64 такой файл начинается с 77u/. Декодер распознаёт метку и не включает её в текст, а Скачать сохраняет байты в точности как были. В коде её, возможно, придётся убрать самостоятельно:

import base64

raw = base64.b64decode("77u/SGk=")
raw.decode("utf-8")       # '\ufeffHi'
raw.decode("utf-8-sig")   # 'Hi'

base64.b64decode("Y2Fm6Q==").decode("utf-8", errors="replace")   # 'caf�'

Без errors="replace" Python выбрасывает UnicodeDecodeError на некорректных байтах. В JavaScript new TextDecoder("utf-8", { fatal: true }) вместо вставки � выбрасывает TypeError, а декодер по умолчанию убирает BOM так же, как этот инструмент. Подробнее в статьях Base64 в Python и Base64 в JavaScript.

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

Как декодировать Base64 в строку UTF-8?

Сначала декодируйте Base64 в байты, затем прочитайте байты как UTF-8. Выше это делается за один шаг. В Python для этого есть base64.b64decode(s).decode("utf-8"), в браузере new TextDecoder().decode(bytes).

Что означает символ � в результате?

Это U+FFFD, символ замены. Декодер вставляет его там, где байты не складываются в корректный UTF-8. Обычно это значит, что текст был в другой кодировке или Base64 обрезан.

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

Скорее всего, в исходнике была метка порядка байтов UTF-8 (Base64 начинается с 77u/). Этот инструмент её убирает, а обычный .decode("utf-8") в Python оставляет как \ufeff; чтобы её удалить, используйте "utf-8-sig".

Мой Base64 точно в UTF-8?

Скорее всего, да. JSON, веб, Linux и современные API работают в UTF-8. Данные из старых программ под Windows или строки .NET и PowerShell могут оказаться в Windows-125x или UTF-16.