Base64URL representa los mismos bytes que Base64, pero cambia dos caracteres para facilitar su uso en URL. Decodex acepta ambos formatos y muestra texto UTF-8. El ejemplo de la tabla puede probarse directamente en el conversor.
Qué cambia y qué no
Base64 usa + y /; Base64URL usa - y _. Las letras y los números se mantienen. El relleno = es una decisión independiente: algunos protocolos lo omiten y otros lo conservan. Una cadena formada solo por letras y números no permite distinguir los dos alfabetos. Ninguno de los formatos es un cifrado.
Por qué una URL puede alterar el resultado
En datos application/x-www-form-urlencoded, + puede interpretarse como un espacio. / también puede confundirse con un separador de ruta. Utiliza URLSearchParams para construir parámetros. Si + ya se perdió al convertirse en espacio, el decodificador no puede reconstruirlo con certeza. El emoji 😀 se representa como 8J+YgA== en Base64 y 8J-YgA== en Base64URL.
Convertir y comprobar el resultado
Para crear Base64URL, codifica primero los bytes, sustituye + por - y / por _, y elimina únicamente los = finales si el protocolo lo permite. Decodex genera Base64 estándar con relleno y acepta Base64URL al decodificar. Leer un segmento JWT no verifica su firma, caducidad ni permisos; esta herramienta no valida tokens.
Probar este ejemplo
| Formato | Texto | Base64 |
|---|---|---|
Base64 | 😀 | 8J+YgA== |
Base64URL | 😀 | 8J-YgA== |
Base64URL (JWT) | 😀 | 8J-YgA |
Preguntas frecuentes
¿Base64URL siempre omite =?
No. Sigue las reglas del sistema receptor. El ejemplo 8J-YgA sin relleno se decodifica como 😀 en Decodex.
Referencias
Más guías de Base64
Relleno Base64: qué significan = y ==
Entiende el relleno Base64 con f, fo y foo. Comprueba cadenas sin =, longitudes inválidas y errores de relleno parcial.
Base64 en JavaScript con Unicode: solucionar errores de btoa()
Codifica acentos, coreano y emojis con TextEncoder y decodifica con atob y TextDecoder. Código UTF-8 y ejemplos comprobados.
