Codificador/Decodificador Base64
Escribe o pega texto, y luego codifica o decodifica. El Unicode y los emoji funcionan correctamente — nada de lo que introduzcas sale de tu navegador.
Base64 correcto con Unicode, no solo ASCII
Base64 codifica bytes, no caracteres, así que el primer paso
para el texto es convertir tu cadena en bytes — y es
justamente ahí donde las implementaciones ingenuas fallan. Esta
herramienta convierte tu texto en su secuencia correcta de
bytes UTF-8 con TextEncoder primero, luego
codifica esos bytes en Base64, y revierte el proceso con TextDecoder a la vuelta:
function toBase64(str) {
return btoa(String.fromCharCode(...new TextEncoder().encode(str)));
}
function fromBase64(b64) {
return new TextDecoder().decode(Uint8Array.from(atob(b64), c => c.charCodeAt(0)));
}
El atajo habitual, un simple btoa(texto), asume
un byte por carácter (Latin-1) y falla en cuanto escribes una
eñe, una letra con tilde o un emoji — esta herramienta no
tiene ese problema, porque nunca le pasa caracteres en crudo a btoa.
Ejemplo práctico
Codificar niño 😀 (una eñe y un emoji juntos)
produce exactamente:
bmnDsW8g8J+YgA==
Decodificar esa cadena devuelve niño 😀 exacto —
cada carácter intacto. Pasa esa misma entrada directamente por
un btoa() a secas y lanza un error, porque 😀
queda fuera de Latin-1.
Preguntas frecuentes
¿Para qué sirve realmente Base64?
Base64 convierte bytes arbitrarios en una cadena formada solo por letras, dígitos, +, / y = — un alfabeto seguro para poner en cualquier sitio donde se espera texto plano. Eso importa porque muchos formatos no pueden llevar binario puro sin romperse: los adjuntos de correo (MIME los codifica en Base64), los data URI (incrustar una imagen pequeña directamente en CSS o HTML como data:image/png;base64,...), y los campos JSON o XML que necesitan transportar contenido binario sin romper la sintaxis que los rodea.
¿Por qué los emoji y las letras acentuadas rompen algunas herramientas Base64?
El btoa() de JavaScript, a secas, asume que cada carácter cabe en un solo byte (0–255) y falla o corrompe cualquier cosa fuera de ese rango — así que una eñe, una tilde o un emoji salen mal. Esta herramienta codifica primero con TextEncoder, que convierte tu texto en su secuencia correcta de bytes UTF-8, y codifica en Base64 esos bytes en lugar de los caracteres en crudo; TextDecoder lo revierte a la vuelta. Por eso niño, café o un emoji se codifican y decodifican bien aquí, a diferencia de un btoa(texto) directo.
¿Es Base64 cifrado o una medida de seguridad?
No — esto importa saberlo. Base64 es una codificación, no un cifrado: no tiene clave ni secreto, y cualquiera puede decodificarlo al instante con cualquier herramienta online o una línea de código. Si ves credenciales o tokens 'protegidos' con Base64, no están protegidos en absoluto — trátalo únicamente como un formato para transportar texto de forma segura, nunca como una manera de ocultar o proteger información.
¿Puedo codificar archivos con esta herramienta?
Por ahora no — esta herramienta trabaja con texto que escribes o pegas, no con archivos subidos. Codificar los bytes en crudo de un archivo a Base64 (como hacen los navegadores internamente para los data URI) es una tarea relacionada pero distinta que esta herramienta no realiza.