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

ASCII para Base64: codifique texto simples de 7 bits

Codifique texto usando o conjunto de caracteres ASCII de 7 bits. Caracteres fora do ASCII são trocados por ? e contados, então você sabe na hora se a sua entrada não é tão simples quanto parece.

Grátis sem cadastro, sem limites Local nada é enviado 0–127 só isso, o resto é sinalizado 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 texto ASCII em Base64

  1. Digite ou cole o texto em Entrada · texto. O Charset já vem definido como ASCII.
  2. O Base64 aparece em Saída · Base64. Se o texto contiver caracteres fora do ASCII, um aviso abaixo da ferramenta diz quantos foram trocados por ?.
  3. Remova ou substitua esses caracteres, ou mude o Charset para UTF-8 se o destino entender UTF-8.
  4. Copie o resultado ou baixe-o como base64.txt.

O caminho inverso é o Base64 para ASCII.

O que conta como ASCII

O ASCII define 128 códigos, de 0 a 127, um byte cada com o bit mais alto zerado. Os códigos de 32 a 126 são os caracteres imprimíveis: o espaço, os dígitos, as letras do alfabeto inglês e a pontuação comum. Os códigos de 0 a 31 e o 127 são caracteres de controle, como tabulação (9), avanço de linha (10) e retorno de carro (13).

Todo o resto, incluindo é, ß, €, aspas curvas, espaços não separáveis e emoji, não é ASCII. Para quem escreve em português, isso inclui todas as letras acentuadas e o ç. Texto colado de editores de texto e páginas web costuma trazer esses caracteres sem que ninguém perceba, geralmente na forma de aspas e travessões tipográficos, e o aviso de substituição os pega.

Exemplos

TextoBase64Observação
Hello, ASCII!SGVsbG8sIEFTQ0lJIQ==Igual ao UTF-8
200 OKMjAwIE9L6 bytes, sem preenchimento
{}[]<>e31bXTw+Pontuação são bytes comuns
a, tabulação, bYQliA tabulação é o byte 09
line1 CR LF line2bGluZTENCmxpbmUy0D 0A no meio
user:passdXNlcjpwYXNzCredenciais de HTTP Basic auth
GrüßeR3I/P2U=2 caracteres trocados por ?
naïve cafébmE/dmUgY2FmPw==2 caracteres trocados por ?

Codificar cada caractere como um byte também deixa o tamanho fácil de prever: n caracteres geram 4 × ⌈n / 3⌉ caracteres Base64.

Por que ASCII e Base64 andam juntos

O Base64 foi projetado para canais que só transportavam ASCII de 7 bits com segurança. O e-mail dos primeiros tempos (SMTP) é o exemplo clássico: bytes acima de 127 podiam ser removidos ou alterados no caminho, então anexos binários e textos em outros idiomas eram codificados num subconjunto do ASCII que todo sistema aceitava. Esse ainda é o motivo de o Base64 existir, e explica o seu alfabeto: 64 caracteres imprimíveis, idênticos em todo charset derivado do ASCII e, fora + e /, sem significado especial nos formatos comuns. Como o Base64 funciona mostra a mecânica.

Alguns sistemas ainda esperam apenas ASCII, por exemplo interfaces legadas e valores de headers HTTP, onde o tratamento de caracteres não ASCII varia entre servidores. Codificar aqui com o charset ASCII confirma que a entrada é segura para eles antes de ela ir para qualquer lugar. Para o header Authorization em particular, o gerador de header Basic Auth monta o valor completo Basic dXNlcjpwYXNz.

ASCII para Base64 no código

O Python recusa caracteres não ASCII por padrão, o que é uma verificação útil:

import base64

base64.b64encode("200 OK".encode("ascii")).decode()   # 'MjAwIE9L'
"Grüße".encode("ascii")
# UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3
"Grüße".encode("ascii", errors="replace")              # b'Gr??e', like this tool

No JavaScript, o btoa() aceita qualquer caractere até o código 255, então ele não vai pegar letras Latin-1 como ü. Teste a string antes com /^[\x00-\x7F]*$/.test(s) se ela precisar ser ASCII puro. Mais nas páginas de Python e JavaScript.

Perguntas frequentes

ASCII para Base64 é diferente de UTF-8 para Base64?

Não, para texto ASCII puro. O UTF-8 foi projetado para que os primeiros 128 caracteres mantenham seus valores de byte ASCII, então Hello, ASCII! dá SGVsbG8sIEFTQ0lJIQ== nos dois. Eles só diferem quando o texto contém outros caracteres.

O que acontece com caracteres como ü ou emoji?

O ASCII não tem código para eles, então cada um vira ? (byte 3F) e a ferramenta informa quantos foram substituídos. Grüße vira R3I/P2U=, que decodifica para Gr??e.

A saída do Base64 também é ASCII?

Sim. Os 65 caracteres que o Base64 usa (A–Z, a–z, 0–9, +, / e =) são ASCII imprimível, e é por isso que o Base64 passa por sistemas que só lidam com texto de 7 bits.

Dá para codificar caracteres de controle, como tabulações e quebras de linha?

Sim. Eles também são ASCII (códigos 0–31) e são codificados como qualquer outro byte: a, tabulação, b dá YQli.