JavaScript e UTF-8
Navegadores oferecem btoa() e atob(), mas essas funções trabalham com strings semelhantes a bytes. Passar texto chinês ou emoji diretamente pode gerar erro ou corromper caracteres.
Usar bytes UTF-8
Converta texto com TextEncoder antes de codificar e com TextDecoder depois de decodificar. Isso preserva dados multilíngues de formulários e APIs.
const bytes=new TextEncoder().encode(text); const encoded=btoa(String.fromCodePoint(...bytes)); const decoded=new TextDecoder().decode(Uint8Array.from(atob(encoded),c=>c.charCodeAt(0)));Lidar com arquivos
Use FileReader para pequenas prévias ou processe blocos ArrayBuffer para arquivos maiores. Evite criar strings intermediárias enormes. Teste com o codificador online.