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

Reparar Base64

Pega el Base64 que un decodificador rechaza. La reparación deshace los daños habituales de JSON, URL, email y copiar y pegar, lista cada cambio que ha hecho y te da una cadena limpia en el formato que elijas.

Gratis sin registro, sin límites Local no se sube nada Corrige comillas, escapes, %3D, espacios, relleno Actualizado 27 oct 2026

Qué se corrigió

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

Cómo reparar una cadena Base64

  1. Pega el valor roto en Base64 a comprobar. Deja las comillas, los prefijos y los saltos de línea que lo rodean: la herramienta los necesita para entender qué pasó.
  2. Elige el Formato de salida: estándar con relleno, estándar sin relleno, URL-safe con o sin relleno, MIME (líneas de 76 caracteres, CRLF) o PEM (líneas de 64 caracteres).
  3. Lee Qué se corrigió. Cada reparación aparece por separado, así puedes distinguir la limpieza inofensiva de los cambios que podrían haber costado datos.
  4. Copia o descarga el resultado, pulsa Validar el resultado para hacerle una comprobación completa o Descargar archivo decodificado para guardar los bytes.

Qué corrige la reparación

Lo que pegasteQué pasóReparado
"SGVsbG8gd29ybGQ\u003d"cadena JSON con un = escapadoSGVsbG8gd29ybGQ=
SGVsbG8%3Dcodificado por porcentajes en una URLSGVsbG8=
PDw/Pz8 Pg==un + se convirtió en espacio en una query stringPDw/Pz8+Pg==
PDw_Pz8-PgURL-safe y sin rellenoPDw/Pz8+Pg==
SGVsbG8gd29ybGQse quitó el rellenoSGVsbG8gd29ybGQ=
SGVsbG8=V29ybGQ=dos valores concatenadosSGVsbG9Xb3JsZA== (HelloWorld)
SGVsbG9=bits sin usar distintos de ceroSGVsbG8=
Authorization: Basic …copiado con el nombre del encabezadosolo el token

También quita los prefijos data:…;base64, y las líneas PEM -----BEGIN …-----, elimina las comillas simples que envuelven el valor, convierte los \n y \/ literales de nuevo en caracteres (json_encode de PHP escribe \/ por defecto), quita espacios y saltos de línea, unifica alfabetos mezclados +/ y -_ y corrige el número de =.

Con valores concatenados, cada trozo se decodifica por separado y luego se unen los bytes, que es lo correcto cuando un programa añadió fragmentos con relleno uno tras otro. Borrar en cambio el = intermedio desplazaría todos los bits siguientes y daría basura.

Reparaciones que pueden ocultar un problema real

Dos correcciones se muestran como avisos porque son suposiciones:

  • Se quitaron caracteres no válidos. Si la cadena contenía *, # o un carácter Unicode perdido, la herramienta lo borra e indica qué caracteres se fueron. Un carácter en medio de los datos podría haber sido un símbolo real que se estropeó, y en ese caso los bytes decodificados seguirán mal a partir de ese punto.
  • Se eliminó un carácter suelto. Ningún codificador produce una longitud con resto 1, así que sobra un carácter o la cadena se cortó. La herramienta elimina el último carácter para que el resto se decodifique, pero si el valor estaba truncado, el final del archivo se ha perdido. Una imagen truncada suele mostrar la parte inferior gris o vacía; un ZIP truncado no se abre.

Cuando aparezca cualquiera de los dos avisos, intenta conseguir el original de nuevo: una línea de log sin truncar, la respuesta completa de la API o el adjunto directamente desde el servidor de correo.

Por qué no basta con un arreglo ingenuo

El fragmento habitual para «arreglar» Base64 se ocupa de los espacios, los caracteres URL-safe y el relleno:

def fix_base64(s):
    s = "".join(s.split())
    s = s.replace("-", "+").replace("_", "/").rstrip("=")
    return s + "=" * (-len(s) % 4)

Repara bien SGVsbG8gd29ybGQ y PDw_Pz8-Pg. Pero si le das PDw/Pz8 Pg==, donde un + se convirtió en espacio, quita el espacio y deja 9 caracteres de datos. Python falla entonces con “number of data characters (9) cannot be 1 more than a multiple of 4”. Los escapes JSON, %3D, los trozos pegados y los prefijos se cuelan del mismo modo. La reparación de esta página prueba cada corrección por turno y solo cambia el espacio por un más cuando el resultado tiene una longitud válida.

La solución más segura a largo plazo está en el origen: codifica el Base64 por porcentajes antes de meterlo en una URL, o usa Base64URL, y mantenlo lejos de los sitios que recortan o escapan el texto. Si la cadena reparada sigue decodificándose en algo inesperado, la guía de errores de Base64 trata el texto ilegible y la doble codificación, y el decodificador Base64 muestra los bytes.

Preguntas frecuentes

¿Cómo soluciono el error "Incorrect padding" en Python?

Añade = hasta que la longitud sea múltiplo de 4: s + "=" * (-len(s) % 4). Si el error sigue, la cadena tiene otros daños, como espacios o escapes; pégala aquí para ver qué más falla.

¿Por qué hay espacios en mi Base64?

Normalmente porque un + pasó por la query string de una URL o por un formulario HTML sin codificación por porcentajes, y el receptor lo convirtió en un espacio. La reparación vuelve a poner el + cuando así se obtiene una longitud válida.

¿Puede una reparación perder datos?

Quitar caracteres no válidos o un último carácter suelto sí puede, y la lista de correcciones lo indica. Si la herramienta avisa de que eliminó un carácter porque los datos estaban cortados, consigue una copia completa del original en lugar de fiarte del resultado.

¿Qué significa \u003d al final de mi Base64?

Es un escape JSON de =. Algunas bibliotecas JSON, entre ellas Gson, escapan = por seguridad en HTML. Un parser JSON lo deshace automáticamente; la reparación hace lo mismo cuando pegas el texto en bruto.