Enviar um arquivo
  1. base64hub
  2. Ferramentas de texto
  3. XML para Base64

XML para Base64: codificar documentos XML

Cole um documento XML e obtenha o Base64 dele. Escolha o charset que corresponde à declaração encoding do documento, para que o parser do destino leia os mesmos caracteres que você escreveu.

Grátis sem cadastro, sem limites Local nada é enviado Atualizado 27 de out. de 2026
Entrada 0 BSaída 0 BTamanho –

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como codificar XML em Base64

  1. Cole o documento XML em Entrada · texto, ou clique em Exemplo para carregar um pequeno.
  2. Ajuste o Charset para a codificação indicada na declaração XML. UTF-8 vem pré-selecionado e é o certo para a maioria dos documentos.
  3. Copie o resultado de Saída · Base64. Deixe Quebra de linha em Nenhuma para campos JSON e HTTP; alguns protocolos baseados em XML aceitam linhas de 76 caracteres.
  4. Baixar salva o Base64 como base64.txt.

O exemplo, uma declaração XML seguida de um elemento <note>, vira uma string que começa com PD94bWwg, o Base64 de <?xml . Quase todo documento XML com declaração começa assim, o que torna o XML codificado fácil de reconhecer. Base64 para XML o decodifica de volta.

Combine o charset com a declaração XML

Um parser XML decide como ler os bytes a partir do atributo encoding da declaração (ou de um byte order mark). Se os bytes e a declaração discordam, o lado que recebe lê caracteres diferentes dos que você escreveu.

DocumentoCharset usado aquiBase64O parser lê
<?xml version="1.0" encoding="ISO-8859-1"?><n>café</n>ISO-8859-1PD94bWwg...PjxuPmNhZuk8L24+café
O mesmo documentoUTF-8PD94bWwg...PjxuPmNhZsOpPC9uPg==café

A segunda linha é um bug clássico de integração: o texto foi salvo como UTF-8, mas ainda declara Latin-1. Escolha aqui o charset declarado ou, melhor, mude a declaração para UTF-8 e mantenha UTF-8 em todo lugar.

Onde o XML viaja como Base64

  • APIs SOAP e REST que aceitam um documento XML inteiro dentro de um campo JSON ou XML, para que os sinais de menor e maior e as aspas não precisem de escape. Serviços de nota fiscal eletrônica e EDI costumam receber notas (por exemplo, documentos UBL) assim.
  • Single sign-on SAML. Uma resposta SAML é um documento XML, codificado em Base64 e enviado pelo navegador via POST. O decodificador SAML transforma valores SAMLResponse e SAMLRequest de volta em XML.
  • Configuração e segredos. Arquivos de configuração XML guardados em variáveis de ambiente ou em Secrets do Kubernetes ficam em Base64 para caber em uma linha.

Quando um documento é assinado digitalmente (XML-DSig, usado no SAML e em muitos esquemas de nota fiscal eletrônica), codifique os bytes exatos que você recebeu ou gerou. Reindentar, mudar as quebras de linha ou salvar o arquivo de novo em um editor pode invalidar a assinatura, mesmo que o XML signifique a mesma coisa.

Tamanho e quebra de linha

O Base64 acrescenta cerca de 33% ao documento. O XML já é verboso por natureza, então documentos grandes costumam ser compactados com gzip antes de codificar; a ferramenta gzip e Base64 faz as duas etapas. Quebra de linha em 76 caracteres é aceita por transportes baseados em MIME e pela maioria dos validadores de XML Schema para conteúdo xs:base64Binary. APIs baseadas em JSON normalmente esperam uma única linha contínua.

XML para Base64 no código

Leia o arquivo como bytes e codifique esses bytes, para que a declaração e os bytes não possam divergir:

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");

No Linux, base64 -w 0 invoice.xml imprime a mesma linha única. Veja Base64 em Python e Base64 em Node.js para streaming de arquivos grandes.

Perguntas frequentes

Como converter um arquivo XML para Base64?

Cole o XML acima e copie o resultado. Para arquivos, codifique os bytes brutos em vez de digitar o texto de novo: base64.b64encode(open("doc.xml", "rb").read()) em Python, ou base64 -w 0 doc.xml no Linux.

Qual charset devo escolher para XML?

O da declaração XML. <?xml version="1.0" encoding="UTF-8"?> ou a ausência do atributo encoding significa UTF-8, o padrão. Se disser ISO-8859-1 ou Windows-1252, escolha esse, ou mude a declaração para UTF-8.

Posso reformatar o XML antes de codificá-lo?

Só se nada depender dos bytes exatos. A indentação muda o Base64 e, em XML assinado (assertions SAML, notas fiscais assinadas), pode quebrar a assinatura.

Onde entra o xs:base64Binary?

Esse tipo do XML Schema é o caso inverso: Base64 dentro de um elemento XML, usado para embutir arquivos em mensagens SOAP e notas fiscais. Codifique o arquivo com Arquivo para Base64 e cole o resultado no elemento.