Как пользоваться
- Вставьте строку Base64 или полный data URI в поле ввода. Пробелы и переносы строк не имеют значения.
- Проверьте определённый тип и размер файла. Изображения, PDF, аудио, видео и текст отображаются в области предпросмотра.
- Скачайте файл. Он сохраняется с именем и расширением, которые соответствуют определённому типу.
Как определяется тип файла
Текст Base64 содержит байты, но не имя файла. Если только вы не вставили data URI с типом MIME, ничто в строке не говорит, что в ней: PDF, архив ZIP или звук. Поэтому инструмент декодирует данные и изучает первые несколько байтов — сигнатуру файла, или «магические байты», которые большинство форматов размещают в самом начале. Поскольку эти байты фиксированы, текст Base64 каждого формата тоже начинается узнаваемо:
| Формат | Первые байты | Начало строки Base64 |
|---|---|---|
%PDF | JVBER | |
| PNG | 89 50 4E 47 | iVBORw0KGgo |
| JPEG | FF D8 FF | /9j/ |
| GIF | GIF8 | R0lGOD |
| ZIP (а также DOCX, XLSX, JAR) | PK 03 04 | UEsDB |
| MP3 с тегом ID3 | ID3 | SUQz |
| WAV, WebP, AVI (RIFF) | RIFF | UklGR |
Если декодированный файл не открывается
Декодирование Base64 выполняется без потерь, поэтому повреждённый файл почти всегда означает, что входные данные были не такими, как вы ожидали. Проверьте эти причины по порядку:
- Обрезанные данные. Лог-файлы, терминалы, ячейки электронных таблиц и мессенджеры часто обрезают длинные строки. Если в конце не хватает текста, файл получается слишком коротким, и большинство форматов после этого не открываются. Если вы знаете исходный размер, сравните его с размером после декодирования.
- Лишние символы. Кавычки, запятые или имя поля, скопированные вместе со значением, а также escape-последовательности вроде
\/и\nиз строки JSON не относятся к Base64. Копируйте только само значение. - Другая кодировка или вариант. Hex, Base32, Base85 или пользовательский алфавит на первый взгляд похожи на Base64, но при декодировании как Base64 превращаются в мусор. Определитель кодировки пробует все декодеры и показывает, какой из них подходит.
- Это вовсе не файл. Если результат определяется как обычный текст, строка была закодированным в Base64 текстом: JSON, токеном или ещё одним слоем Base64. Прочитайте его с помощью декодера Base64 и, если результат снова окажется строкой Base64, декодируйте ещё раз.
Валидатор Base64 перечисляет недопустимые символы с их позициями и сообщает о проблемах с дополнением, что помогает найти повреждённый фрагмент.
Декодирование Base64 в файл в коде
# Python
import base64
with open('output.bin', 'wb') as f:
f.write(base64.b64decode(data))
// Node.js
fs.writeFileSync('output.bin', Buffer.from(data, 'base64'));
# Linux
base64 -d input.txt > output.bin
# macOS
base64 -D -i input.txt -o output.bin
# Windows PowerShell
[IO.File]::WriteAllBytes("C:\files\output.bin", [Convert]::FromBase64String((Get-Content input.txt -Raw)))
Часто задаваемые вопросы
Какие типы файлов распознаются?
Распространённые форматы с чёткой сигнатурой: PDF; архивы ZIP, GZIP, 7z и RAR; изображения PNG, JPEG, GIF, WebP и другие; аудио MP3, WAV, OGG, FLAC и M4A; видео MP4 и WebM; шрифты WOFF, WOFF2, TTF и OTF; WebAssembly и многое другое. JSON, XML, HTML и обычный текст тоже распознаются. Форматы без сигнатуры определить нельзя, поэтому, если вы знаете настоящий тип, просто переименуйте скачанный файл.
Почему мой файл Word или Excel определился как ZIP?
Файлы DOCX, XLSX и PPTX, как и EPUB и JAR, представляют собой архивы ZIP с определённой структурой папок внутри и начинаются с тех же магических байтов, что и любой ZIP-файл. Декодированные байты верны: переименуйте скачанный файл, указав расширение .docx, .xlsx или другое нужное, и он откроется как обычно.
Можно ли вставить data URI?
data:...;base64,, или только часть с Base64. В обоих случаях тип сверяется с декодированными байтами.Почему декодированный файл меньше текста Base64?
Base64 использует 4 символа на каждые 3 байта, поэтому размер файла составляет примерно три четверти длины текста. Если файл намного меньше ожидаемого, скорее всего, входные данные были обрезаны.
Отправляются ли мои данные куда-либо?
Нет. Декодирование, определение типа и предпросмотр выполняются в вашем браузере, а скачиваемый файл создаётся на вашем устройстве. Ничего не загружается на сервер.