RFC 4648 · Codificador y decodificador
Codifica en Base64 lo que quieras, sin subir nada.
Un codificador y decodificador Base64 online y gratuito para texto, archivos e imágenes, que se ejecuta con JavaScript en tu propia pestaña del navegador. No se sube nada, así que sigue funcionando sin conexión y no tiene límite de tamaño.
- Codifica mientras escribes
- Texto, archivos e imágenes
- Modos URL-safe y MIME
- Sin anuncios ni registro
Suelta aquí un archivo o una imagen
o . No se sube nada: el archivo nunca sale de tu ordenador.
Opciones
Listo para pegar
Ctrl+Enter codificar Ctrl+Shift+C copiar resultado Ctrl+Shift+X invertir dirección
Codificar Base64 online: gratis, instantáneo y privado
Esta herramienta para codificar Base64 online trabaja en tu navegador, no en un servidor. Escribe en el cuadro de arriba y el Base64 aparece a medida que tecleas: sin botón, sin recargar la página y sin subir nada. Cambia a Decodificar para hacer la operación inversa, o abre la pestaña Archivo e imagen para codificar una imagen en Base64 y obtener un data URI que puedes pegar directamente en HTML o CSS.
Incluye todo lo que define el estándar: el alfabeto estándar, Base64 URL-safe (RFC 4648 §5), líneas MIME de 76 caracteres, separadores LF y CRLF, codificación línea a línea y seis juegos de caracteres, de UTF-8 a ISO-8859-1 y UTF-16. Si prefieres codificar en Base64 desde tu código, los ejemplos de más abajo cubren Python, JavaScript, Linux y macOS, PowerShell, PHP, Java, Go, C# y Ruby.
Última actualización:
Por qué esta
La diferencia está en dónde se codifica.
La mayoría de las herramientas Base64 envían tu archivo a un servidor, lo codifican allí y te devuelven un enlace de descarga. Es decir, tus datos salen de tu equipo para una transformación que tu navegador hace en microsegundos. Esta herramienta nunca hace esa petición.
| Característica | freebase64encode.com | Codificador online típico |
|---|---|---|
| Dónde se procesan tus datos | Siempre en tu pestaña del navegador | Se suben a un servidor |
| Límite de tamaño de archivo | Solo la memoria de tu dispositivo | Normalmente 100 MB como máximo |
| Archivos guardados en un servidor | Nunca: no hay ningún endpoint | Se guardan temporalmente y luego se borran |
| Sigue funcionando sin conexión | Sí, una vez cargada la página | No |
| Codificación en vivo mientras escribes | Activada por defecto | Opcional o con un botón |
| Codificar y decodificar | Una página, un clic para cambiar | Dos páginas distintas |
| Imagen → data URI + HTML/CSS/Markdown | Integrado, con vista previa | No disponible |
| Ejemplos de código en 9 lenguajes | En la misma página | No disponible |
| Aumento de tamaño visible | Bytes y % en tiempo real | No se muestra |
| Anuncios y avisos de cookies | Ninguno, y sin cookies de seguimiento | Habitualmente sí |
Hazlo en código
Codificar Base64 en Python, JavaScript, Bash, PowerShell y cinco más.
Código listo para copiar y pegar para codificar y decodificar en los lenguajes que más se buscan, con el error típico que a todos nos cuesta una tarde señalado en cada uno.
Codificar Base64 en Python
Python incluye Base64 en la biblioteca estándar. Lo que más confunde: b64encode recibe bytes, no str, así que primero hay que codificar el texto a UTF-8.
import base64
# Encode a string ─ note the .encode("utf-8"): b64encode takes bytes, not str
text = "Man is distinguished"
encoded = base64.b64encode(text.encode("utf-8")).decode("ascii")
print(encoded) # TWFuIGlzIGRpc3Rpbmd1aXNoZWQ=
# Decode it back
decoded = base64.b64decode(encoded).decode("utf-8")
# URL-safe, unpadded (RFC 4648 §5) ─ the JWT flavour
base64.urlsafe_b64encode(b"data").rstrip(b"=")
# Encode a file, wrapped at 76 characters for MIME
with open("photo.png", "rb") as f:
mime = base64.encodebytes(f.read()).decode("ascii")
# Build a data URI for an image
uri = "data:image/png;base64," + base64.b64encode(open("photo.png", "rb").read()).decode() Codificar Base64 en JavaScript
btoa() es la API clásica del navegador, pero lanza un InvalidCharacterError con cualquier carácter por encima de U+00FF. Para texto Unicode, conviértelo primero a bytes con TextEncoder.
// Browser, ASCII only
btoa("hello"); // "aGVsbG8="
atob("aGVsbG8="); // "hello"
// Browser, Unicode-safe ─ btoa() throws above U+00FF
const bytes = new TextEncoder().encode("héllo 🎉");
const b64 = btoa(Array.from(bytes, (b) => String.fromCharCode(b)).join(""));
const text = new TextDecoder().decode(
Uint8Array.from(atob(b64), (c) => c.charCodeAt(0))
);
// Node.js
Buffer.from("hello", "utf8").toString("base64");
Buffer.from(b64, "base64").toString("utf8");
// Modern runtimes ─ no btoa() dance needed
new TextEncoder().encode("hello").toBase64(); // "aGVsbG8="
Uint8Array.fromBase64("aGVsbG8=");
// URL-safe: swap the two characters URLs reserve, then drop padding
const urlSafe = b64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
// Encode a file the user picked, without uploading it
const buf = new Uint8Array(await file.arrayBuffer());
const fileB64 = btoa(Array.from(buf, (b) => String.fromCharCode(b)).join("")); Codificar Base64 en Linux, macOS y Bash
GNU coreutils incluye el comando base64 en cualquier Linux. macOS trae la versión BSD, que usa opciones distintas; abajo están las dos.
# Encode a file
base64 photo.png > photo.b64
# Encode a string ─ use printf, not echo, or you encode a trailing newline too
printf %s 'hello' | base64 # aGVsbG8=
echo 'hello' | base64 # aGVsbG8K ← the K is the newline
# One unbroken line (GNU): disable wrapping
base64 -w 0 photo.png
# MIME-compliant 76-character lines
base64 -w 76 photo.png
# Decode
base64 -d photo.b64 > photo.png
echo 'aGVsbG8=' | base64 --decode
# URL-safe output
base64 -w 0 photo.png | tr '+/' '-_' | tr -d '='
# macOS / BSD base64 ─ no -w flag; use -i / -o, and -D to decode
base64 -i photo.png -o photo.b64
base64 -D -i photo.b64 -o photo.png
# Also available almost everywhere ─ -A keeps it on one line
openssl base64 -A -in photo.png
# Copy straight to the clipboard on macOS
base64 -i photo.png | pbcopy Codificar Base64 en PowerShell y Windows
PowerShell llama directamente a .NET. Elige la codificación de texto con cuidado: [Text.Encoding]::Unicode es UTF-16 LE, que es lo que espera powershell -EncodedCommand, pero no la mayoría de las API.
# Encode a string as UTF-8
$b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('hello')) # aGVsbG8=
# Decode it back
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($b64))
# Encode a file
[Convert]::ToBase64String([IO.File]::ReadAllBytes("$PWD\photo.png")) | Set-Content photo.b64
# Decode a file
[IO.File]::WriteAllBytes("$PWD\photo.png", [Convert]::FromBase64String((Get-Content photo.b64 -Raw)))
# -EncodedCommand needs UTF-16 LE, not UTF-8
$cmd = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Get-Date'))
powershell -EncodedCommand $cmd
# cmd.exe: certutil ships with Windows (adds BEGIN/END header lines)
certutil -encode photo.png photo.b64
certutil -decode photo.b64 photo.png Codificar Base64 en PHP
base64_encode() y base64_decode() vienen integradas, sin extensiones. Activa el modo estricto de base64_decode() cuando la entrada no sea de confianza.
$encoded = base64_encode('hello'); // aGVsbG8=
$decoded = base64_decode($encoded);
// Strict mode returns false instead of silently skipping invalid characters
$safe = base64_decode($input, true);
if ($safe === false) { /* not valid Base64 */ }
// URL-safe, unpadded
$url = rtrim(strtr(base64_encode($raw), '+/', '-_'), '=');
// A file as a data URI
$uri = 'data:image/png;base64,' . base64_encode(file_get_contents('photo.png'));
// MIME, 76-character lines
$mime = chunk_split(base64_encode($raw), 76, "\r\n"); Codificar Base64 en Java
java.util.Base64 forma parte del JDK desde Java 8 y ofrece tres codificadores (básico, URL-safe y MIME), así que rara vez necesitas una biblioteca externa.
import java.util.Base64;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
// Always name the charset explicitly ─ the platform default is a portability bug
String encoded = Base64.getEncoder()
.encodeToString("hello".getBytes(StandardCharsets.UTF_8));
byte[] raw = Base64.getDecoder().decode(encoded);
String text = new String(raw, StandardCharsets.UTF_8);
// URL-safe, unpadded (RFC 4648 §5)
String jwtPart = Base64.getUrlEncoder().withoutPadding().encodeToString(bytes);
// MIME ─ 76-character lines separated by CRLF
String mime = Base64.getMimeEncoder()
.encodeToString(Files.readAllBytes(Path.of("photo.png"))); Codificar Base64 en Go
encoding/base64 expone cuatro codificaciones. Std y URL llevan relleno; RawStd y RawURL son las variantes sin relleno.
import (
"encoding/base64"
"io"
"os"
)
encoded := base64.StdEncoding.EncodeToString([]byte("hello")) // aGVsbG8=
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil { /* not valid Base64 */ }
// URL-safe and unpadded ─ what JWT libraries use
token := base64.RawURLEncoding.EncodeToString(raw)
// A file
data, _ := os.ReadFile("photo.png")
uri := "data:image/png;base64," + base64.StdEncoding.EncodeToString(data)
// Stream a large file instead of holding it all in memory
f, _ := os.Open("video.mp4")
defer f.Close()
w := base64.NewEncoder(base64.StdEncoding, os.Stdout)
io.Copy(w, f)
w.Close() // Close() flushes the final partial group ─ don't skip it Codificar Base64 en C#
Convert.ToBase64String() cubre el caso habitual. .NET 9 añadió System.Buffers.Text.Base64Url para la variante URL-safe.
using System;
using System.IO;
using System.Text;
string encoded = Convert.ToBase64String(Encoding.UTF8.GetBytes("hello"));
string text = Encoding.UTF8.GetString(Convert.FromBase64String(encoded));
// MIME ─ inserts CRLF every 76 characters
Convert.ToBase64String(bytes, Base64FormattingOptions.InsertLineBreaks);
// URL-safe (.NET 9+)
System.Buffers.Text.Base64Url.EncodeToString(bytes);
// A file as a data URI
string uri = "data:image/png;base64," +
Convert.ToBase64String(File.ReadAllBytes("photo.png"));
// Validate untrusted input without throwing
if (Convert.TryFromBase64String(input, buffer, out int written)) { /* ok */ } Codificar Base64 en Ruby
Usa strict_encode64 en lugar de encode64: este último corta la salida cada 60 caracteres y añade un salto de línea final, algo que sorprende al comparar hashes.
require 'base64'
encoded = Base64.strict_encode64('hello') # "aGVsbG8="
decoded = Base64.decode64(encoded)
# encode64 wraps at 60 chars and adds a trailing newline ─ rarely what you want
Base64.encode64('hello') # "aGVsbG8=\n"
# URL-safe (RFC 4648 §5)
Base64.urlsafe_encode64(raw, padding: false)
# A file ─ binread avoids any encoding conversion
Base64.strict_encode64(File.binread('photo.png')) El mecanismo
Cómo funciona realmente la codificación Base64.
Base64 reescribe bytes arbitrarios con 64 caracteres que cualquier sistema entiende. Toma tres bytes (24 bits) y los vuelve a cortar en cuatro grupos de 6 bits. Cada grupo es un índice del alfabeto A–Z a–z 0–9 + /. Como 3 bytes siempre se convierten en 4 caracteres, la salida es exactamente un tercio más grande.
Ejemplo paso a paso: Man → TWFu
| Texto | M | a | n |
|---|---|---|---|
| ASCII | 77 | 97 | 110 |
| Bits | 01001101 01100001 01101110 | ||
| Grupos de 6 bits | 010011 010110 000101 101110 | ||
| Índice | 19 · 22 · 5 · 46 | ||
| Base64 | TWFu | ||
Cuando la longitud de la entrada no es múltiplo de tres, el último grupo se rellena con = para que la salida siga siendo múltiplo de cuatro. Un byte sobrante da ==; dos bytes sobrantes dan =.
Ejemplos de codificación Base64
Así quedan algunas cadenas habituales codificadas en Base64 como UTF-8. Pega cualquiera en la herramienta de arriba para comprobarlo.
| Entrada | Base64 | Nota |
|---|---|---|
| Hello, World! | SGVsbG8sIFdvcmxkIQ== | Dos = porque 13 bytes dejan uno suelto |
| Hello World | SGVsbG8gV29ybGQ= | 11 bytes, así que un = |
| hello | aGVsbG8= | |
| base64 | YmFzZTY0 | 6 bytes son divisibles entre 3: sin relleno |
| user:password | dXNlcjpwYXNzd29yZA== | Valor de una cabecera HTTP Basic auth |
| héllo 🎉 | aMOpbGxvIPCfjok= | UTF-8: la é ocupa 2 bytes y el emoji 4 |
| {"alg":"HS256","typ":"JWT"} | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 | Cabecera de un JWT, URL-safe y sin relleno |
El alfabeto Base64 (tabla de índices)
Cada valor de 6 bits, de 0 a 63, corresponde a un carácter. El alfabeto URL-safe es idéntico salvo que el 62 es - y el 63 es _. El = es relleno y no forma parte del alfabeto.
| Valor | Carácter | Valor | Carácter | Valor | Carácter | Valor | Carácter |
|---|---|---|---|---|---|---|---|
| 0 | A | 16 | Q | 32 | g | 48 | w |
| 1 | B | 17 | R | 33 | h | 49 | x |
| 2 | C | 18 | S | 34 | i | 50 | y |
| 3 | D | 19 | T | 35 | j | 51 | z |
| 4 | E | 20 | U | 36 | k | 52 | 0 |
| 5 | F | 21 | V | 37 | l | 53 | 1 |
| 6 | G | 22 | W | 38 | m | 54 | 2 |
| 7 | H | 23 | X | 39 | n | 55 | 3 |
| 8 | I | 24 | Y | 40 | o | 56 | 4 |
| 9 | J | 25 | Z | 41 | p | 57 | 5 |
| 10 | K | 26 | a | 42 | q | 58 | 6 |
| 11 | L | 27 | b | 43 | r | 59 | 7 |
| 12 | M | 28 | c | 44 | s | 60 | 8 |
| 13 | N | 29 | d | 45 | t | 61 | 9 |
| 14 | O | 30 | e | 46 | u | 62 | + |
| 15 | P | 31 | f | 47 | v | 63 | / |
Comparativa de variantes de Base64
«Base64» es una familia. Todas comparten las mismas 62 letras y cifras y se diferencian en los dos últimos caracteres, el relleno y los saltos de línea. La herramienta de arriba genera las tres primeras.
| Variante | Especificación | Caracteres 62 / 63 | Relleno | Saltos de línea | Uso |
|---|---|---|---|---|---|
| Estándar | RFC 4648 §4 | + / | Obligatorio | Ninguno | Uso general, JSON, data URI |
| URL-safe (base64url) | RFC 4648 §5 | - _ | Normalmente se omite | Ninguno | JWT, URL, nombres de archivo |
| MIME | RFC 2045 | + / | Obligatorio | CRLF cada 76 | Adjuntos de correo |
| PEM | RFC 7468 | + / | Obligatorio | Cada 64, con BEGIN/END | Certificados TLS, claves |
Dónde se usa Base64
Adjuntos de correo
SMTP se diseñó para texto de 7 bits. MIME (RFC 2045) codifica los adjuntos en Base64 y corta la salida cada 76 caracteres para que los servidores de correo la transmitan sin alterarla.
Data URI
data:image/png;base64,… incrusta una imagen pequeña, una fuente o un SVG directamente en HTML o CSS y ahorra una petición. Compensa por debajo de unos pocos kilobytes; por encima, el 33 % extra y la pérdida de caché cuestan más que la petición.
Datos en JSON y XML
Ninguno de los dos formatos admite bytes arbitrarios. Base64 convierte un archivo en una cadena de texto que cualquier parser JSON acepta, y así viajan los datos binarios por las API REST.
JWT y URL
Los JSON Web Tokens usan base64url (la variante RFC 4648 §5 con - y _ en lugar de + y /, sin relleno) para que el token quepa sin problemas en una URL, una cookie o una cabecera.
HTTP Basic auth
Authorization: Basic es literalmente base64(usuario:contraseña). Es codificación, no cifrado, y precisamente por eso Basic auth solo es aceptable sobre HTTPS.
Configuración y secretos
Los Secrets de Kubernetes, los certificados TLS en formato PEM y las claves SSH guardan los datos binarios en Base64 para que el archivo siga siendo texto legible, comparable y fácil de copiar.
Seis errores que cuestan una tarde
Base64 no es cifrado
Cualquiera puede decodificarlo con un solo comando. Nunca lo uses para ocultar una contraseña, una clave de API o datos personales: para eso existe el cifrado de verdad.
Juegos de caracteres distintos corrompen el texto
Base64 codifica bytes, y el texto solo se convierte en bytes al elegir un juego de caracteres. Si codificas en UTF-8 y decodificas en Latin-1, obtienes caracteres extraños. Usa UTF-8 en ambos lados.
echo añade un salto de línea
echo "hi" | base64 codifica tres bytes, no dos, porque echo añade \n. Usa printf %s para codificar exactamente lo que escribiste.
Los saltos de línea cambian la cadena
La salida MIME lleva un CRLF cada 76 caracteres. La mayoría de los decodificadores ignoran los espacios, pero una comparación estricta o un hash de dos cadenas «idénticas» fallará si una está cortada.
+ y / se rompen en las URL
El + se convierte en espacio al decodificar un formulario y la / divide rutas. Usa la variante URL-safe siempre que el valor vaya en una URL o en un nombre de archivo.
Aumenta los datos un tercio
Cada 3 bytes se convierten en 4 caracteres. Meter una subida grande en Base64 dentro de un JSON aumenta el ancho de banda y la memoria en ambos extremos: usa multipart/form-data.
Preguntas
Codificación Base64: preguntas frecuentes.
¿Qué es la codificación Base64?
Base64 es un esquema de codificación de binario a texto que representa datos binarios con 64 caracteres ASCII imprimibles (A–Z, a–z, 0–9, + y /). Existe para que los datos binarios viajen sin problemas por canales pensados para texto: correos electrónicos, documentos JSON y XML, cabeceras HTTP, URL y atributos HTML. Base64 es una codificación, no un cifrado: cualquiera puede decodificarlo, así que no aporta confidencialidad.
¿Cómo codifico texto en Base64 online?
Pega o escribe el texto en el cuadro de entrada de esta página. El resultado aparece al momento en el cuadro de salida: no hay botón ni recarga, porque la codificación se hace en tu navegador mientras escribes. Pulsa Copiar, o Ctrl+Shift+C, para llevar la cadena Base64 al portapapeles.
¿Cómo codifico una cadena en Base64?
Primero la cadena se convierte en bytes con un juego de caracteres (casi siempre UTF-8) y después esos bytes se codifican en Base64. En esta página ocurre automáticamente: escribe la cadena y copia el resultado. Por ejemplo, "Hello, World!" en Base64 es SGVsbG8sIFdvcmxkIQ==. En código es una sola línea en cualquier lenguaje importante; consulta los ejemplos de Python, JavaScript, Bash, PowerShell, PHP, Java, Go, C# y Ruby.
¿Es seguro y privado este codificador Base64?
Sí. Cada byte se codifica localmente con JavaScript en tu propia pestaña del navegador. Tus textos, archivos e imágenes nunca se envían a un servidor, nunca se guardan en una base de datos y nunca se registran: el sitio es una página estática sin ningún punto de subida. Puedes comprobarlo abriendo la pestaña Red de las DevTools mientras codificas, o desconectándote de internet y viendo que la herramienta sigue funcionando.
¿Cómo codifico en Base64 con Python?
Usa el módulo integrado base64. Codifica con base64.b64encode(data.encode("utf-8")).decode("ascii") y decodifica con base64.b64decode(encoded).decode("utf-8"). Ten en cuenta que b64encode recibe bytes, no str; por eso la entrada se codifica antes en UTF-8. Para salida URL-safe usa base64.urlsafe_b64encode, y para salida MIME con líneas de 76 caracteres, base64.encodebytes.
¿Cómo codifico en Base64 con PowerShell o Windows?
En PowerShell ejecuta [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("hello")) para codificar una cadena, o [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\ruta\archivo.png")) para codificar un archivo. Desde cmd.exe, certutil -encode in.png out.b64 funciona en cualquier Windows, aunque añade líneas de cabecera BEGIN y END. Usa [Text.Encoding]::Unicode (UTF-16 LE) solo con powershell -EncodedCommand.
¿Cómo codifico en Base64 con JavaScript?
Para texto ASCII, btoa(str) codifica y atob(str) decodifica. btoa falla con caracteres por encima de U+00FF, así que para texto Unicode conviértelo antes a bytes: btoa(Array.from(new TextEncoder().encode(str), (b) => String.fromCharCode(b)).join("")). Evita la forma con spread String.fromCharCode(...bytes), que desborda la pila con entradas grandes. En Node.js usa Buffer.from(str, "utf8").toString("base64"). Los entornos modernos también ofrecen Uint8Array.prototype.toBase64().
¿Cómo codifico un archivo en Base64 en Linux?
Usa el comando base64 de coreutils: base64 archivo.txt lo codifica y base64 -d archivo.b64 lo decodifica. Añade -w 0 para desactivar los saltos de línea cuando necesites una sola línea, o -w 76 para una salida compatible con MIME. Para codificar una cadena directamente, pásala por una tubería: printf %s "hello" | base64. Usa printf en lugar de echo para no incluir un salto de línea final en los bytes codificados.
¿Cómo codifico en Base64 en un Mac?
macOS incluye el comando base64 de BSD en la Terminal. Codifica un archivo con base64 -i archivo.png -o archivo.b64, una cadena con printf %s "hello" | base64, y decodifica con base64 -D -i archivo.b64 -o archivo.png. A diferencia del base64 de GNU en Linux, no corta líneas por defecto y no tiene la opción -w. Redirige a pbcopy para llevar el resultado directamente al portapapeles.
¿Cómo codifico una imagen en Base64?
Abre la pestaña Archivo e imagen de esta página y suelta tu imagen. Obtienes el Base64 en bruto, un data URI listo para pegar (data:image/png;base64,...) y fragmentos de HTML, CSS y Markdown generados. Base64 hace la imagen un 33 % más grande, así que conviene incrustar solo imágenes pequeñas (de menos de unos 5 KB); las más grandes es mejor servirlas como archivos normales que el navegador pueda guardar en caché.
¿Qué es Base64 URL-safe?
El Base64 estándar usa + y /, que tienen un significado reservado en URL y nombres de archivo. Base64 URL-safe (RFC 4648 §5, también llamado base64url) sustituye + por - y / por _, y normalmente elimina el relleno =. Es lo que usan los JSON Web Tokens. Activa la opción URL-safe de esta página para generarlo.
¿Por qué mi cadena Base64 termina con signos =?
Base64 procesa la entrada en grupos de 3 bytes que se convierten en 4 caracteres. Cuando la longitud de la entrada no es múltiplo de 3, el último grupo se rellena con = para que la salida siga siendo múltiplo de 4. Un byte sobrante produce dos =, y dos bytes sobrantes producen uno. El relleno no contiene datos y es opcional en algunas variantes, como base64url.
¿Cuánto aumenta Base64 el tamaño de los datos?
Alrededor de un 33 %: cada 3 bytes de entrada se convierten en 4 caracteres de salida, una proporción de 4/3. La longitud exacta con relleno es 4 × ⌈n / 3⌉ caracteres para n bytes de entrada, así que 10 bytes ocupan 16 caracteres y 1 MB ocupa unos 1,33 MB. En modo MIME, los saltos de línea añaden otro 2,6 % aproximadamente (un CRLF de dos bytes cada 76 caracteres). Esta herramienta muestra el tamaño exacto de entrada y salida y el porcentaje de aumento debajo del resultado mientras escribes.
¿Hay un límite de tamaño de archivo?
No hay límite en el servidor porque no interviene ningún servidor. El límite práctico es la memoria de tu dispositivo y de la pestaña del navegador; en un ordenador suelen funcionar archivos de hasta unos cientos de megabytes, y esta herramienta procesa los archivos grandes por bloques para que el navegador siga respondiendo. Las herramientas que suben los archivos a un servidor suelen limitarte a 100 MB.
¿La codificación Base64 funciona con Unicode y emojis?
Sí. Primero el texto se convierte en bytes con el juego de caracteres que elijas (UTF-8 por defecto, que cubre todos los puntos de código Unicode, emojis incluidos) y después esos bytes se codifican en Base64. Usar juegos de caracteres distintos al codificar y al decodificar es la causa habitual de texto corrupto, así que mantén ambos en UTF-8 salvo que tengas un motivo concreto.