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

Base64 в XML: декодирование XML-данных

Вставьте Base64 и прочитайте XML внутри. Инструмент распознаёт XML-документы, сохраняет их в .xml и понимает UTF-8, UTF-16 и устаревшие кодировки.

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

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

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

  1. Вставьте Base64 в поле Ввод · Base64. При загрузке страницы там уже есть небольшой пример.
  2. XML появится в поле Результат · текст. Похоже на XML в строке статуса подтверждает, что содержимое начинается как XML-документ.
  3. Если между буквами видны пропуски или появилось предупреждение о двоичных данных, XML в UTF-16: выберите в поле Кодировка UTF-16LE или Автоопределение, если в начале есть метка порядка байтов.
  4. Скопировать результат копирует текст. Скачать сохраняет исходные байты как decoded.xml.

Пример PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxub3RlPjx0bz55b3U8L3RvPjxib2R5PkhlbGxvPC9ib2R5Pjwvbm90ZT4= декодируется в:

<?xml version="1.0"?>
<note><to>you</to><body>Hello</body></note>

Закодировать XML обратно можно на странице XML в Base64.

Как узнать закодированный XML

XML начинается с <, поэтому его Base64 начинается с P, а следующие символы подсказывают больше:

Base64 начинается сНачало после декодированияТипичный документ
PD94bWwg<?xmlЛюбой XML-файл с декларацией
PHNhbWxwOlJlc3BvbnNl<samlp:ResponseОтвет SAML при входе (декодер SAML)
PHNvYXA6RW52ZWxvcGU<soap:EnvelopeСообщение SOAP
PEludm9pY2U<InvoiceЭлектронный счёт UBL
//48AD8AeABtAGwABOM + <?xml в UTF-16LEXML, сохранённый в UTF-16

Если значение, которое должно быть SAML, начинается не с P, обычно оно сжато; что с этим делать, объясняют следующие разделы.

UTF-16 и другие кодировки

Большая часть XML записана в UTF-8, его декодер и предполагает. В двух случаях нужна другая Кодировка:

  • Документы в UTF-16, частые у инструментов Windows и .NET, содержат нулевой байт рядом с каждым ASCII-символом. Декодированные как UTF-8, они выглядят как двоичные данные, и инструмент об этом сообщает. С Автоопределением или UTF-16LE появляется весь текст, начиная с <?xml version="1.0" encoding="UTF-16"?>. Скачать сохраняет байты, но называет файл decoded.bin, так что переименуйте его в .xml.
  • Документы в Latin-1 или Windows-1252 объявляют encoding="ISO-8859-1" или что-то похожее. Буквы с диакритикой в режиме UTF-8 выглядят как �; выберите объявленную кодировку, чтобы их прочитать.

XML-декларация в результате говорит, какую кодировку задумал автор. XML-парсер, читающий скачанный файл, использует эту декларацию, так что с файлом всё в порядке, даже если для показа на экране кодировку пришлось выбирать вручную.

Откуда берётся XML в Base64

Чаще всего это SAML: провайдеры идентификации отправляют приложению SAMLResponse в виде XML, закодированного в Base64, и при отладке входа его обычно копируют из вкладки «Сеть» в браузере. SOAP-сервисы и платформы электронного документооборота возвращают документы и вложения полями Base64. Почта может нести XML-вложения как MIME-части в Base64, их извлекает декодер писем.

В значениях SAMLRequest из URL редиректа XML перед кодированием сжат сырым DEFLATE, поэтому простое декодирование Base64 даёт двоичные данные. Распаковывает их декодер Base64 + gzip. Escape-последовательности %2B, %2F и %3D декодируются автоматически; если значение URL-кодировано целиком, сначала пропустите его через URL-декодер.

Base64 в XML в коде

Передавайте XML-парсеру декодированные байты, а не строку. Тогда он сам прочитает кодировку из декларации:

import base64
import xml.etree.ElementTree as ET

s = "PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxub3RlPjx0bz55b3U8L3RvPjxib2R5PkhlbGxvPC9ib2R5Pjwvbm90ZT4="
root = ET.fromstring(base64.b64decode(s))
root.find("body").text   # 'Hello'
// Browser
const s = "PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxub3RlPjx0bz55b3U8L3RvPjxib2R5PkhlbGxvPC9ib2R5Pjwvbm90ZT4=";
const bytes = Uint8Array.from(atob(s), c => c.charCodeAt(0));
const doc = new DOMParser().parseFromString(new TextDecoder().decode(bytes), "application/xml");

Для XML в UTF-16 или Latin-1 в браузере передайте TextDecoder нужную метку кодировки. Подробнее в статьях Base64 в Python и Base64 в JavaScript.

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

Как декодировать Base64 в файл XML?

Вставьте Base64 в поле выше. Когда в строке статуса появится XML, Скачать сохранит декодированные байты как decoded.xml байт в байт, с исходной кодировкой и нетронутой подписью.

Как понять, что в Base64 лежит XML?

Документы с XML-декларацией начинаются с PD94bWwg (<?xml ). Без декларации строка всё равно начинается с P, потому что любой документ начинается с <; например, PHNhbWxwOlJlc3BvbnNl декодируется в <samlp:Response.

Инструмент умеет форматировать XML и расставлять отступы?

Нет. XML показывается ровно в том виде, в каком декодирован; опция «Форматировать JSON» работает только для JSON. Показывать исходные байты важно для подписанного XML: любое переформатирование меняет содержимое.

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

SAML-запросы, которые передаются в URL редиректа, перед кодированием в Base64 сжимаются сырым DEFLATE. Распакуйте их декодером Base64 + gzip или откройте в декодере SAML.