RFC 4648 · Codificador e decodificador
Codifique qualquer coisa em Base64, sem enviar nada.
Um codificador e decodificador Base64 online e grátis para texto, arquivos e imagens, executado por JavaScript na sua própria aba do navegador. Nada é enviado, então ele continua funcionando offline e não tem limite de tamanho.
- Codifica enquanto você digita
- Texto, arquivos e imagens
- Modos URL-safe e MIME
- Sem anúncios e sem cadastro
Solte um arquivo ou imagem aqui
ou . Nada é enviado: o arquivo nunca sai do seu computador.
Opções
Pronto para colar
Ctrl+Enter codificar Ctrl+Shift+C copiar resultado Ctrl+Shift+X inverter direção
Codificar Base64 online: grátis, instantâneo e privado
Esta ferramenta para codificar Base64 online trabalha no seu navegador, e não em um servidor. Digite na caixa acima e o Base64 aparece enquanto você digita: sem botão, sem recarregar a página e sem upload. Mude para Decodificar para fazer o caminho inverso, ou abra a aba Arquivo e imagem para codificar uma imagem em Base64 e obter um data URI para colar direto no HTML ou CSS.
Tudo o que o padrão define está aqui: o alfabeto padrão, Base64 URL-safe (RFC 4648 §5), linhas MIME de 76 caracteres, quebras de linha LF e CRLF, codificação linha a linha e seis conjuntos de caracteres, do UTF-8 ao ISO-8859-1 e UTF-16. Se preferir codificar em Base64 no seu código, os exemplos abaixo cobrem Python, JavaScript, Linux e macOS, PowerShell, PHP, Java, Go, C# e Ruby.
Última atualização:
Por que esta
A diferença está em onde a codificação acontece.
A maioria das ferramentas Base64 envia seu arquivo para um servidor, codifica lá e devolve um link de download. Ou seja, seus dados saem da sua máquina para uma transformação que o navegador faz em microssegundos. Esta ferramenta nunca faz essa requisição.
| Recurso | freebase64encode.com | Codificador online típico |
|---|---|---|
| Onde seus dados são processados | Sempre na sua aba do navegador | Enviados para um servidor |
| Limite de tamanho de arquivo | Só a memória do seu dispositivo | Geralmente 100 MB no máximo |
| Arquivos guardados em servidor | Nunca: não existe endpoint | Guardados temporariamente e depois apagados |
| Continua funcionando offline | Sim, depois que a página carrega | Não |
| Codificação ao vivo enquanto digita | Ativada por padrão | Opcional ou com botão |
| Codificar e decodificar | Uma página, um clique para trocar | Duas páginas separadas |
| Imagem → data URI + HTML/CSS/Markdown | Integrado, com pré-visualização | Não oferecido |
| Exemplos de código em 9 linguagens | Na própria página | Não oferecido |
| Aumento de tamanho exibido | Bytes e % ao vivo | Não exibido |
| Anúncios e avisos de cookies | Nenhum, e sem cookies de rastreamento | Geralmente presentes |
No seu código
Codificar Base64 em Python, JavaScript, Bash, PowerShell e mais cinco.
Código pronto para copiar e colar para codificar e decodificar nas linguagens mais buscadas, com a pegadinha que custa uma tarde a todo mundo destacada em cada uma.
Codificar Base64 em Python
O Python traz Base64 na biblioteca padrão. O que mais confunde: b64encode recebe bytes, não str, então o texto precisa ser codificado em UTF-8 antes.
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 em JavaScript
btoa() é a API clássica do navegador, mas lança um InvalidCharacterError com qualquer caractere acima de U+00FF. Para texto Unicode, converta para bytes com TextEncoder primeiro.
// 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 no Linux, macOS e Bash
O GNU coreutils oferece o comando base64 em qualquer Linux. O macOS vem com a versão BSD, que usa opções diferentes; as duas estão abaixo.
# 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 no PowerShell e Windows
O PowerShell chama o .NET diretamente. Escolha a codificação do texto com cuidado: [Text.Encoding]::Unicode é UTF-16 LE, que é o que o powershell -EncodedCommand espera, mas não a maioria das APIs.
# 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 em PHP
base64_encode() e base64_decode() já vêm embutidas, sem extensão. Use o modo estrito do base64_decode() quando a entrada não for confiável.
$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 em Java
java.util.Base64 faz parte do JDK desde o Java 8 e oferece três codificadores (básico, URL-safe e MIME), então raramente é preciso uma 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 em Go
encoding/base64 oferece quatro codificações. Std e URL têm preenchimento; RawStd e RawURL são as variantes sem preenchimento.
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 em C#
Convert.ToBase64String() resolve o caso comum. O .NET 9 adicionou System.Buffers.Text.Base64Url para a 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 em Ruby
Prefira strict_encode64 a encode64: este último quebra a saída a cada 60 caracteres e adiciona uma quebra de linha no final, o que surpreende quem compara 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')) O mecanismo
Como a codificação Base64 funciona de verdade.
O Base64 reescreve bytes quaisquer com 64 caracteres que todo sistema entende. Ele pega três bytes (24 bits) e os recorta em quatro grupos de 6 bits. Cada grupo é um índice do alfabeto A–Z a–z 0–9 + /. Como 3 bytes sempre viram 4 caracteres, a saída fica exatamente um terço maior.
Exemplo passo a passo: 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 | ||
Quando o comprimento da entrada não é múltiplo de três, o último grupo é preenchido com = para que a saída continue múltipla de quatro. Um byte sobrando gera ==; dois bytes sobrando geram =.
Exemplos de codificação Base64
Veja como ficam algumas strings comuns codificadas em Base64 como UTF-8. Cole qualquer uma na ferramenta acima para conferir.
| Entrada | Base64 | Observação |
|---|---|---|
| Hello, World! | SGVsbG8sIFdvcmxkIQ== | Dois = porque 13 bytes deixam um sobrando |
| Hello World | SGVsbG8gV29ybGQ= | 11 bytes, então um = |
| hello | aGVsbG8= | |
| base64 | YmFzZTY0 | 6 bytes são divisíveis por 3: sem preenchimento |
| user:password | dXNlcjpwYXNzd29yZA== | Valor de um cabeçalho HTTP Basic auth |
| héllo 🎉 | aMOpbGxvIPCfjok= | UTF-8: o é ocupa 2 bytes, o emoji 4 |
| {"alg":"HS256","typ":"JWT"} | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 | Cabeçalho de um JWT, URL-safe e sem preenchimento |
O alfabeto Base64 (tabela de índices)
Cada valor de 6 bits, de 0 a 63, corresponde a um caractere. O alfabeto URL-safe é idêntico, exceto que o 62 é - e o 63 é _. O = é preenchimento e não faz parte do alfabeto.
| Valor | Caractere | Valor | Caractere | Valor | Caractere | Valor | Caractere |
|---|---|---|---|---|---|---|---|
| 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 | / |
Variantes do Base64 comparadas
“Base64” é uma família. Todas as variantes compartilham as mesmas 62 letras e dígitos e diferem nos dois últimos caracteres, no preenchimento e nas quebras de linha. A ferramenta acima gera as três primeiras.
| Variante | Especificação | Caracteres 62 / 63 | Preenchimento | Quebras de linha | Uso |
|---|---|---|---|---|---|
| Padrão | RFC 4648 §4 | + / | Obrigatório | Nenhuma | Uso geral, JSON, data URI |
| URL-safe (base64url) | RFC 4648 §5 | - _ | Normalmente omitido | Nenhuma | JWTs, URLs, nomes de arquivo |
| MIME | RFC 2045 | + / | Obrigatório | CRLF a cada 76 | Anexos de e-mail |
| PEM | RFC 7468 | + / | Obrigatório | A cada 64, com BEGIN/END | Certificados TLS, chaves |
Onde o Base64 é usado
Anexos de e-mail
O SMTP foi especificado para texto de 7 bits. O MIME (RFC 2045) codifica os anexos em Base64 e quebra a saída a cada 76 caracteres para que os servidores de e-mail a repassem sem alterações.
Data URI
data:image/png;base64,… embute uma imagem pequena, uma fonte ou um SVG direto no HTML ou CSS e economiza uma requisição. Vale a pena abaixo de alguns kilobytes; acima disso, os 33% a mais e a perda de cache custam mais do que a requisição.
Dados em JSON e XML
Nenhum dos dois formatos aceita bytes arbitrários. O Base64 transforma um arquivo em uma string simples que qualquer parser JSON aceita, e é assim que dados binários trafegam por APIs REST.
JWTs e URLs
Os JSON Web Tokens usam base64url, a variante RFC 4648 §5 com - e _ no lugar de + e / e sem preenchimento, para que o token caiba com segurança em uma URL, cookie ou cabeçalho.
HTTP Basic auth
Authorization: Basic é literalmente base64(usuário:senha). É codificação, não criptografia, e é exatamente por isso que o Basic auth só é aceitável sobre HTTPS.
Configuração e segredos
Secrets do Kubernetes, certificados TLS em formato PEM e chaves SSH guardam dados binários em Base64 para que o arquivo continue sendo um texto legível, comparável e fácil de copiar.
Seis erros que custam uma tarde
Base64 não é criptografia
Qualquer pessoa decodifica com um único comando. Nunca use para esconder uma senha, uma chave de API ou dados pessoais: para isso existe criptografia de verdade.
Conjuntos de caracteres diferentes estragam o texto
O Base64 codifica bytes, e o texto só vira bytes depois que um conjunto de caracteres é escolhido. Codifique em UTF-8 e decodifique em Latin-1 e você terá caracteres estranhos. Use UTF-8 nos dois lados.
echo adiciona uma quebra de linha
echo "hi" | base64 codifica três bytes, não dois, porque o echo acrescenta \n. Use printf %s para codificar exatamente o que você digitou.
Quebras de linha mudam a string
A saída MIME tem um CRLF a cada 76 caracteres. A maioria dos decodificadores ignora espaços, mas uma comparação estrita ou um hash de duas strings “idênticas” falha se uma delas estiver quebrada.
+ e / quebram em URLs
O + vira espaço quando uma query string é decodificada como formulário, e a / divide caminhos. Use a variante URL-safe sempre que o valor for para uma URL ou um nome de arquivo.
Os dados crescem um terço
Cada 3 bytes viram 4 caracteres. Colocar um upload grande em Base64 dentro de um JSON aumenta a banda e a memória nas duas pontas: envie multipart/form-data.
Perguntas
Codificação Base64: perguntas frequentes.
O que é codificação Base64?
Base64 é um esquema de codificação de binário para texto que representa dados binários com 64 caracteres ASCII imprimíveis (A–Z, a–z, 0–9, + e /). Ele existe para que dados binários trafeguem com segurança por canais feitos para texto: corpos de e-mail, documentos JSON e XML, cabeçalhos HTTP, URLs e atributos HTML. Base64 é codificação, não criptografia: qualquer pessoa pode decodificar, então ele não oferece confidencialidade.
Como codificar texto em Base64 online?
Cole ou digite seu texto na caixa de entrada desta página. O resultado aparece na hora na caixa de saída: não há botão nem recarregamento, porque a codificação acontece no seu navegador enquanto você digita. Clique em Copiar, ou use Ctrl+Shift+C, para levar a string Base64 para a área de transferência.
Como codificar uma string em Base64?
Primeiro a string é convertida em bytes com um conjunto de caracteres (quase sempre UTF-8) e depois esses bytes são codificados em Base64. Nesta página isso acontece automaticamente: digite a string e copie o resultado. Por exemplo, "Hello, World!" em Base64 fica SGVsbG8sIFdvcmxkIQ==. Em código é uma linha em qualquer linguagem popular; veja os exemplos para Python, JavaScript, Bash, PowerShell, PHP, Java, Go, C# e Ruby.
Este codificador Base64 é seguro e privado?
Sim. Cada byte é codificado localmente por JavaScript na sua própria aba do navegador. Seus textos, arquivos e imagens nunca são enviados a um servidor, nunca são gravados em um banco de dados e nunca são registrados: o site é uma página totalmente estática, sem nenhum endpoint de upload. Você pode conferir abrindo a aba Rede do DevTools enquanto codifica, ou desconectando da internet e vendo que a ferramenta continua funcionando.
Como codificar em Base64 no Python?
Use o módulo embutido base64. Codifique com base64.b64encode(data.encode("utf-8")).decode("ascii") e decodifique com base64.b64decode(encoded).decode("utf-8"). Repare que b64encode recebe bytes, não str, por isso a entrada é codificada em UTF-8 antes. Para saída URL-safe use base64.urlsafe_b64encode, e para saída MIME com linhas de 76 caracteres use base64.encodebytes.
Como codificar em Base64 no PowerShell ou no Windows?
No PowerShell, execute [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("hello")) para codificar uma string, ou [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\caminho\arquivo.png")) para codificar um arquivo. No cmd.exe, certutil -encode in.png out.b64 funciona em qualquer Windows, mas adiciona linhas de cabeçalho BEGIN e END. Use [Text.Encoding]::Unicode (UTF-16 LE) apenas com powershell -EncodedCommand.
Como codificar em Base64 no JavaScript?
Para texto ASCII, btoa(str) codifica e atob(str) decodifica. O btoa falha com caracteres acima de U+00FF, então para texto Unicode converta para bytes primeiro: btoa(Array.from(new TextEncoder().encode(str), (b) => String.fromCharCode(b)).join("")). Evite a forma com spread String.fromCharCode(...bytes), que estoura a pilha de chamadas com entradas grandes. No Node.js use Buffer.from(str, "utf8").toString("base64"). Ambientes modernos também oferecem Uint8Array.prototype.toBase64().
Como codificar um arquivo em Base64 no Linux?
Use o comando base64 do coreutils: base64 arquivo.txt codifica e base64 -d arquivo.b64 decodifica. Adicione -w 0 para desativar as quebras de linha quando precisar de uma única linha, ou -w 76 para uma saída compatível com MIME. Para codificar uma string direto, use um pipe: printf %s "hello" | base64. Use printf em vez de echo para não incluir uma quebra de linha no final dos bytes codificados.
Como codificar em Base64 no Mac?
O macOS traz o comando base64 do BSD no Terminal. Codifique um arquivo com base64 -i arquivo.png -o arquivo.b64, uma string com printf %s "hello" | base64, e decodifique com base64 -D -i arquivo.b64 -o arquivo.png. Ao contrário do base64 GNU do Linux, ele não quebra linhas por padrão e não tem a opção -w. Use um pipe para o pbcopy para mandar o resultado direto para a área de transferência.
Como codificar uma imagem em Base64?
Abra a aba Arquivo e imagem desta página e solte sua imagem. Você recebe o Base64 bruto, um data URI pronto para colar (data:image/png;base64,...) e trechos de HTML, CSS e Markdown gerados. O Base64 deixa a imagem cerca de 33% maior, então é melhor embutir só imagens pequenas (abaixo de uns 5 KB) e servir as maiores como arquivos normais que o navegador consegue guardar em cache.
O que é Base64 URL-safe?
O Base64 padrão usa + e /, que têm significado reservado em URLs e nomes de arquivo. O Base64 URL-safe (RFC 4648 §5, também chamado de base64url) troca + por - e / por _, e normalmente remove o preenchimento =. É o que os JSON Web Tokens usam. Ative a opção URL-safe desta página para gerá-lo.
Por que minha string Base64 termina com sinais de =?
O Base64 processa a entrada em grupos de 3 bytes que viram 4 caracteres. Quando o comprimento da entrada não é múltiplo de 3, o último grupo é preenchido com = para que a saída continue múltipla de 4. Um byte sobrando gera dois =, dois bytes sobrando geram um. O preenchimento não carrega dados e é opcional em algumas variantes, como o base64url.
Quanto o Base64 aumenta o tamanho dos dados?
Cerca de 33%: cada 3 bytes de entrada viram 4 caracteres de saída, uma proporção de 4/3. O comprimento exato com preenchimento é 4 × ⌈n / 3⌉ caracteres para n bytes de entrada, então 10 bytes viram 16 caracteres e 1 MB vira cerca de 1,33 MB. No modo MIME, as quebras de linha somam mais uns 2,6% (um CRLF de dois bytes a cada 76 caracteres). Esta ferramenta mostra o tamanho exato de entrada e saída e o percentual de aumento abaixo do resultado enquanto você digita.
Existe limite de tamanho de arquivo?
Não há limite no servidor porque não há servidor envolvido. O limite prático é a memória do seu dispositivo e da aba do navegador; no computador, arquivos de até algumas centenas de megabytes costumam funcionar, e esta ferramenta processa arquivos grandes em blocos para o navegador continuar respondendo. Ferramentas que enviam o arquivo para um servidor costumam limitar a 100 MB.
A codificação Base64 funciona com Unicode e emojis?
Sim. O texto é convertido em bytes primeiro, usando o conjunto de caracteres que você escolher (UTF-8 por padrão, que cobre todos os pontos de código Unicode, incluindo emojis), e depois esses bytes são codificados em Base64. Conjuntos de caracteres diferentes no codificador e no decodificador são a causa mais comum de texto corrompido, então mantenha os dois em UTF-8, a não ser que tenha um motivo específico.