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

XML в Base64: кодирование XML-документов

Вставьте XML-документ и получите его Base64. Выберите кодировку, совпадающую с объявлением encoding в документе, чтобы парсер на той стороне прочитал те же символы, что написали вы.

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

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

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

  1. Вставьте XML-документ в поле Ввод · текст или нажмите Пример, чтобы загрузить небольшой образец.
  2. В поле Кодировка укажите кодировку из XML-объявления. По умолчанию выбрана UTF-8: она подходит для большинства документов.
  3. Скопируйте результат из поля Результат · Base64. Для полей JSON и HTTP оставьте Перенос строк в положении «Нет»; некоторые протоколы на базе XML принимают строки по 76 символов.
  4. Скачать сохраняет Base64 в файл base64.txt.

Пример (XML-объявление и элемент <note>) кодируется в строку, которая начинается с PD94bWwg, то есть с Base64 от <?xml . Так начинается почти любой XML-документ с объявлением, поэтому закодированный XML легко узнать. Base64 в XML декодирует его обратно.

Кодировка должна совпадать с XML-объявлением

Как читать байты, XML-парсер решает по атрибуту encoding в объявлении (или по метке порядка байтов). Если байты и объявление расходятся, получатель прочитает не те символы, что вы написали.

ДокументКодировка здесьBase64Парсер прочитает
<?xml version="1.0" encoding="ISO-8859-1"?><n>café</n>ISO-8859-1PD94bWwg...PjxuPmNhZuk8L24+café
Тот же документUTF-8PD94bWwg...PjxuPmNhZsOpPC9uPg==café

Вторая строка показывает классическую ошибку интеграции: текст сохранён в UTF-8, а в объявлении по-прежнему Latin-1. Либо выберите здесь объявленную кодировку, либо (что лучше) поменяйте объявление на UTF-8 и используйте UTF-8 везде.

Где XML передают в Base64

  • SOAP и REST API, которые принимают целый XML-документ внутри поля JSON или XML, чтобы угловые скобки и кавычки не нужно было экранировать. Сервисы электронных счетов и EDI часто принимают так счета (например, документы UBL).
  • Единый вход через SAML. Браузер отправляет ответ SAML как XML-документ, закодированный в Base64. Декодер SAML превращает значения SAMLResponse и SAMLRequest обратно в XML.
  • Конфигурация и секреты. XML-конфиги в переменных окружения или секретах Kubernetes хранят в Base64, чтобы они умещались в одну строку.

Если документ подписан (XML-DSig, который используют SAML и многие схемы электронных счетов), кодируйте ровно те байты, что вы получили или сформировали. Новые отступы, другие окончания строк или пересохранение файла в редакторе могут сделать подпись недействительной, хотя смысл XML не изменится.

Размер и перенос строк

Base64 увеличивает документ примерно на 33%. XML и так многословен, поэтому большие документы часто сжимают gzip перед кодированием; инструмент gzip и Base64 делает оба шага. Перенос строк по 76 символов принимают транспорты на базе MIME и большинство валидаторов XML Schema для содержимого xs:base64Binary. API на JSON обычно ждут одну неразрывную строку.

XML в Base64 в коде

Читайте файл как байты и кодируйте их, тогда объявление и байты не разойдутся:

import base64

with open("invoice.xml", "rb") as f:
    b64 = base64.b64encode(f.read()).decode("ascii")
// Node.js
const fs = require("fs");
const b64 = fs.readFileSync("invoice.xml").toString("base64");

В Linux base64 -w 0 invoice.xml выводит ту же самую одну строку. Потоковую обработку больших файлов описывают статьи Base64 в Python и Base64 в Node.js.

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

Как перевести XML-файл в Base64?

Вставьте XML выше и скопируйте результат. Для файлов кодируйте сами байты, а не перепечатанный текст: base64.b64encode(open("doc.xml", "rb").read()) в Python или base64 -w 0 doc.xml в Linux.

Какую кодировку выбрать для XML?

Ту, что указана в XML-объявлении. <?xml version="1.0" encoding="UTF-8"?> или отсутствие атрибута encoding означает UTF-8, кодировку по умолчанию. Если там ISO-8859-1 или Windows-1252, выберите её или поменяйте объявление на UTF-8.

Можно ли переформатировать XML перед кодированием?

Только если ничто не зависит от точных байтов. Отступы меняют Base64, а у подписанного XML (SAML-утверждения, подписанные счета) могут сломать подпись.

При чём тут xs:base64Binary?

Этот тип XML Schema описывает обратный случай: Base64 внутри XML-элемента, которым встраивают файлы в SOAP-сообщения и счета. Закодируйте файл через Файл в Base64 и вставьте результат в элемент.