Enviar um arquivo
  1. base64hub
  2. Ferramentas de texto
  3. HTML para Base64

HTML para Base64: codificar markup para data URIs

Cole o HTML e receba o Base64 pronto para um URI data:text/html ou um campo de API. O markup é codificado byte a byte como UTF-8, então texto acentuado e símbolos sobrevivem.

Grátis sem cadastro, sem limites Local nada é enviado Atualizado 27 de out. de 2026
Entrada 0 BSaída 0 BTamanho –

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como codificar HTML em Base64

  1. Cole o markup em Entrada · texto, ou clique em Exemplo para um documento pequeno.
  2. Copie o Base64 de Saída · Base64.
  3. Mantenha Charset em UTF-8 e declare UTF-8 no data URI ou no documento (veja abaixo).
  4. Acrescente data:text/html;charset=utf-8;base64, no início se precisar de um data URI, ou cole o Base64 puro no campo da API que o pediu.

O exemplo <!doctype html> mais <h1>Hello from base64hub</h1>, em duas linhas, vira PCFkb2N0eXBlIGh0bWw+CjxoMT5IZWxsbyBmcm9tIGJhc2U2NGh1YjwvaDE+. O Base64 para HTML faz o caminho inverso.

Exemplos

HTMLBase64
<h1>Hi</h1>PGgxPkhpPC9oMT4=
<p>café</p>PHA+Y2Fmw6k8L3A+
<b>Total: 5 &euro;</b>PGI+VG90YWw6IDUgJmV1cm87PC9iPg==

Entidades como &euro; são só texto para o Base64 e ficam como estão; o navegador as resolve depois de decodificar. Uma string que começa com PCFkb2N0eXBl ou PCFET0NUWVBF é um documento HTML (<!doctype ou <!DOCTYPE), e PGh0bWw é <html.

Montar um URI data:text/html

Um data URI completo tem quatro partes: o esquema, o media type, um charset opcional e a marcação de Base64.

data:text/html;charset=utf-8;base64,PHA+Y2Fmw6k8L3A+

Sem charset=utf-8 no URI nem <meta charset="utf-8"> no documento, o navegador pode ler os bytes numa codificação legada, e café aparece como café. Colocar a meta tag dentro do HTML protege o documento onde quer que ele vá parar.

Usos típicos:

  • Num iframe, <iframe src="data:text/html;base64,..."> mostra um trecho autossuficiente sem arquivo separado. Para HTML escrito à mão, o atributo srcdoc costuma ser mais simples, porque não exige codificação nenhuma.
  • Testes de navegador e outras automações podem carregar uma página de fixture a partir de um data URI sem servidor web.
  • Algumas APIs de e-mail, de renderização de PDF e de documentos aceitam o corpo HTML como campo Base64, para que aspas e quebras de linha não precisem de escape no JSON.

Os navegadores não deixam uma página web navegar a janela principal para uma URL data:text/html, então links e redirecionamentos para uma delas falham em silêncio ou mostram um erro. Iframes não são afetados.

Tamanho e alternativas

O Base64 deixa o markup cerca de um terço maior: o documento de 49 bytes <!doctype html><meta charset="utf-8"><p>café</p> vira 68 caracteres. Para HTML quase todo em ASCII, um data URI com percent-encoding costuma ser mais curto, porque só alguns caracteres, como #, % e bytes não ASCII, precisam de escape. O Base64 é a escolha mais segura quando o markup é grande, tem muitos caracteres especiais ou vai para um campo que só aceita Base64. O gerador de data URI monta links data: para HTML, CSS e imagens, e desempenho de data URIs trata de cache e de trade-offs de tamanho.

HTML para Base64 no código

import base64

html = '<!doctype html><meta charset="utf-8"><p>café</p>'
uri = "data:text/html;charset=utf-8;base64," + base64.b64encode(html.encode("utf-8")).decode()
// Node.js
const html = "<p>café</p>";
const uri = "data:text/html;charset=utf-8;base64," + Buffer.from(html, "utf8").toString("base64");
// "data:text/html;charset=utf-8;base64,PHA+Y2Fmw6k8L3A+"

No navegador, use a abordagem com TextEncoder de Base64 em JavaScript, já que o btoa sozinho embaralha ou rejeita caracteres não ASCII. Veja também Base64 em Python.

Perguntas frequentes

Como criar um data URI a partir de HTML?

Codifique o HTML aqui e coloque o resultado depois de data:text/html;charset=utf-8;base64,. Por exemplo, <h1>Hi</h1> vira data:text/html;charset=utf-8;base64,PGgxPkhpPC9oMT4=.

Por que meu link data:text/html não abre a partir de uma página?

Os navegadores atuais impedem que páginas web levem a janela principal para uma URL data:text/html, uma medida contra phishing. Carregue-a num iframe, ou abra colando você mesmo na barra de endereços.

Base64 é a mesma coisa que codificação HTML?

Não. A codificação HTML (entidades) transforma < em &lt; para que o markup apareça como texto. O Base64 transforma o documento inteiro em letras e dígitos para transporte. Para entidades, use a ferramenta de entidades HTML.

O Base64 esconde meu código HTML?

Não. Qualquer pessoa o decodifica em segundos, e o navegador precisa decodificá-lo de qualquer forma para renderizar.