Subir un archivo
  1. base64hub
  2. Herramientas de texto
  3. Base64 a XML

Base64 a XML: decodifica contenido XML

Pega Base64 y lee el XML que contiene. La herramienta reconoce documentos XML, los guarda como .xml y maneja UTF-8, UTF-16 y juegos de caracteres antiguos.

Gratis sin registro, sin límites Local no se sube nada Actualizado 27 oct 2026
Entrada 0 BSalida 0 BTamaño –

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo decodificar Base64 a XML

  1. Pega el Base64 en Entrada · Base64. La página se abre con un pequeño ejemplo.
  2. El XML aparece en Salida · texto. Parece XML en la línea de estado confirma que el contenido empieza como un documento XML.
  3. Si la salida muestra huecos entre las letras o un aviso de datos binarios, el XML está en UTF-16: pon Juego de caracteres en UTF-16LE, o en Detección automática si empieza con una marca de orden de bytes.
  4. Copiar salida copia el texto. Descargar guarda los bytes originales como decoded.xml.

El ejemplo PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxub3RlPjx0bz55b3U8L3RvPjxib2R5PkhlbGxvPC9ib2R5Pjwvbm90ZT4= se decodifica así:

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

La operación inversa es XML a Base64.

Cómo reconocer XML codificado

Como el XML empieza por <, su Base64 empieza por P, y los caracteres siguientes revelan más:

El Base64 empieza porInicio decodificadoDocumento típico
PD94bWwg<?xmlCualquier archivo XML con declaración
PHNhbWxwOlJlc3BvbnNl<samlp:ResponseRespuesta de inicio de sesión SAML (decodificador SAML)
PHNvYXA6RW52ZWxvcGU<soap:EnvelopeMensaje SOAP
PEludm9pY2U<InvoiceFactura electrónica UBL
//48AD8AeABtAGwABOM + <?xml en UTF-16LEXML guardado como UTF-16

Un valor que debería ser SAML pero no empieza por P suele estar comprimido; más abajo se explica cómo descomprimirlo.

UTF-16 y otras codificaciones

La mayor parte del XML está en UTF-8, que es lo que el decodificador supone. Hay dos casos que necesitan otro Juego de caracteres:

  • Los documentos UTF-16, habituales en herramientas de Windows y en .NET, tienen un byte cero junto a cada carácter ASCII. Decodificados como UTF-8 parecen datos binarios, y la herramienta lo indica. Con Detección automática o UTF-16LE aparece el texto completo, que empieza por <?xml version="1.0" encoding="UTF-16"?>. Descargar conserva los bytes pero llama al archivo decoded.bin, así que cámbiale la extensión a .xml.
  • Los documentos en Latin-1 o Windows-1252 declaran encoding="ISO-8859-1" o algo parecido. En modo UTF-8, las letras acentuadas se ven como �; elige el juego de caracteres declarado para leerlas.

La declaración XML de la salida te dice qué juego de caracteres pretendía usar el autor. Un analizador XML que lea el archivo descargado usa esa declaración, así que el archivo está bien aunque la vista en pantalla haya necesitado elegir el juego de caracteres a mano.

De dónde sale el XML en Base64

SAML es la fuente más frecuente: los proveedores de identidad envían el SAMLResponse a tu aplicación como XML codificado en Base64, y copiarlo desde la pestaña de red del navegador es la forma habitual de depurar un inicio de sesión. Los servicios SOAP y las plataformas de facturación electrónica devuelven documentos y adjuntos como campos Base64. El correo electrónico puede llevar adjuntos XML como partes MIME en Base64, que el decodificador de correo extrae.

En los valores SAMLRequest de las URL de redirección, el XML se comprimió con DEFLATE sin procesar antes de codificarlo, así que decodificar el Base64 sin más da datos binarios. El decodificador de Base64 con gzip lo descomprime. Los escapes %2B, %2F y %3D se decodifican automáticamente; para un valor completamente codificado para URL, usa antes el decodificador de URL.

Base64 a XML en código

Pasa los bytes decodificados al analizador XML sin convertirlos antes en una cadena, para que lea la codificación de la propia declaración:

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

Para XML en UTF-16 o Latin-1 en el navegador, pasa la etiqueta correcta a TextDecoder. Más en Base64 en Python y Base64 en JavaScript.

Preguntas frecuentes

¿Cómo decodifico Base64 a un archivo XML?

Pega el Base64 arriba. Cuando la línea de estado diga XML, Descargar guarda los bytes decodificados como decoded.xml, byte a byte, con la codificación original y cualquier firma intacta.

¿Cómo sé si un Base64 contiene XML?

Los documentos con declaración XML empiezan por PD94bWwg (<?xml ). Sin declaración, la cadena sigue empezando por P, porque todo documento empieza por <; PHNhbWxwOlJlc3BvbnNl es <samlp:Response.

¿Puede la herramienta formatear o indentar el XML?

No. El XML se muestra exactamente como se decodificó; la opción Formatear JSON solo se aplica a JSON. Mostrar los bytes originales es importante en el XML firmado, donde cualquier cambio de formato altera el contenido.

¿Por qué mi SAMLRequest decodificado parece bytes aleatorios?

Las peticiones SAML enviadas en una URL de redirección se comprimen con DEFLATE sin procesar antes de codificarlas en Base64. Descomprímelas con el decodificador de Base64 con gzip o ábrelas en el decodificador SAML.