Codificador/Decodificador Base64
Escribe o pega texto y elige codificar o decodificar. Unicode y emoji funcionan correctamente — nada de lo que ingreses sale de tu navegador.
Base64 correcto con Unicode, no solo ASCII
Base64 codifica bytes, no caracteres, así que el primer paso con
texto es convertir tu cadena en bytes — y ahí es justo donde
fallan las implementaciones ingenuas. Esta herramienta usa TextEncoder para convertir tu texto en su secuencia
de bytes UTF-8 correcta antes de codificarla en Base64, y TextDecoder para revertir eso al decodificar. El
atajo habitual, btoa(texto) a secas, asume un byte
por carácter (Latin-1) y falla en cuanto escribes una letra con
tilde, un carácter griego o un emoji — esta herramienta no tiene
ese problema.
Ejemplo práctico
Codificar café ☕ 日本語 (tildes, un emoji y kanji
japonés juntos) produce exactamente:
Y2Fmw6kg4piVIOaXpeacrOiqng==
Decodificar esa cadena devuelve café ☕ 日本語
exactamente — cada carácter intacto. Pasa la misma entrada por btoa() directamente y lanza un error, porque ☕ y
日本語 quedan fuera de Latin-1.
Preguntas frecuentes
¿Para qué sirve Base64 exactamente?
Base64 convierte bytes arbitrarios en una cadena de letras, números, + , / y = — un alfabeto seguro para colocar en cualquier lugar donde se espera texto plano. Esto importa porque muchos formatos no pueden llevar binario crudo: el correo electrónico (los adjuntos MIME van codificados en Base64), las data URIs (incrustar una imagen pequeña directamente en CSS o HTML como data:image/png;base64,...), y campos JSON o XML que necesitan llevar contenido tipo binario sin romper la sintaxis alrededor.
¿Por qué los emoji y las tildes rompen algunos codificadores de Base64?
La función nativa de JavaScript btoa() asume que cada carácter cabe en un byte Latin-1 (0–255) y falla o corrompe todo lo que quede fuera de ese rango — así que é, ☕ y 日本語 dan error o se convierten en basura. El texto en JavaScript es UTF-16 internamente, pero casi siempre se transmite como UTF-8, donde esos mismos caracteres ocupan de 2 a 4 bytes cada uno. Esta herramienta codifica primero con TextEncoder (convirtiendo tu texto en la secuencia de bytes UTF-8 correcta) y luego aplica Base64 sobre esos bytes — así que todo lo que btoa() por sí solo destrozaría sale bien aquí.
¿Base64 es cifrado o una medida de seguridad?
No — esto es importante. Base64 es una codificación, no un cifrado. No tiene clave, no tiene secreto, y cualquiera puede decodificarlo al instante con cualquier herramienta en línea o una sola línea de código. Si ves credenciales o tokens 'protegidos' con Base64, en realidad no están protegidos en absoluto; trata Base64 únicamente como un formato seguro para texto, nunca como una forma de ocultar o asegurar información.
¿Puedo codificar archivos con esta herramienta?
No por ahora — esta herramienta trabaja con texto que escribes o pegas, no con archivos subidos. Codificar los bytes crudos de un archivo a Base64 (como hacen los navegadores internamente para las data URIs) es una tarea relacionada pero distinta que esta herramienta no realiza.