Texto para binário
Este conversor mostra os bytes UTF-8 por trás de qualquer texto como grupos binários de 8 bits, e converte no sentido inverso com a mesma facilidade. Caracteres ASCII levam um byte, emoji levam quatro; a decodificação rejeita entrada que não seja múltiplo de 8 bits ou não seja UTF-8 válido. Tudo é executado localmente no seu navegador.
Texto para binário: explicação
Não existe tal coisa como o binário de uma letra: bits descrevem bytes, e bytes dependem da codificação. Esta ferramenta mostra a codificação adotada pela web — UTF-8, conforme RFC 3629, na qual cada caractere de a a 🙂 é de um a quatro bytes, renderizados como grupos de 8 bits.
A codificação é auto-descritiva: o primeiro byte anuncia o comprimento. Um byte começando com 0 é um byte ASCII; 110 começa dois; 1110 começa três; 11110 começa quatro; cada byte de continuação começa com 10. Memorize essa única regra e a saída se torna legível.
O botão de direção inverte a decodificação: cole bits, obtenha texto. A decodificação é intencionalmente estrita — uma contagem de bits que não seja um número inteiro de bytes, ou bytes que quebrem as regras de continuação do UTF-8, são rejeitados em vez de serem decodificados em caracteres de substituição. A conversão acontece nesta aba; nada é enviado.
Bits brutos são para visualização; quando esses bytes precisam viajar por um canal apenas de texto, base64 é o empacotador padrão, e o Guia Base64 explicado explica por que foi projetado dessa forma.
Binário é verboso — oito caracteres por byte — e o Comparação Base64 vs hexadecimal mostra por que hexadecimal geralmente vence em papel e como as duas notações se relacionam.
Como o texto se torna bits
O conversor passa seu texto para o TextEncoder do próprio navegador, que emite bytes UTF-8 diretamente. Isso é importante para emoji: strings JavaScript armazenam 🙂 como duas metades de substitutos, mas o codificador opera em pontos de código, então ele produz uma sequência de quatro bytes. Cada byte é preenchido com zeros para exatamente oito bits e agrupado — oito bytes por linha por padrão.
- Codificar: a string se torna bytes UTF-8 via TextEncoder — sem BOM, sem dependência de locale.
- Renderizar: cada byte é escrito como 8 bits, com preenchimento de zeros — 0x48 é 01001000, não 1001000.
- Agrupar: bytes são separados por espaços, linhas por novas linhas, no agrupamento que você escolher.
- Decodificar: o caminho inverso remove cada caractere que não seja 0 ou 1, reune os bytes e decodifica UTF-8 de forma estrita.
Lendo a saída: o byte inicial diz o comprimento
O objetivo de design do UTF-8 era compatibilidade com ASCII, e os padrões mostram isso. ASCII mantém seus códigos de um byte familiares — 01000001 é A em ambos — enquanto sequências mais longas são construídas a partir de bytes iniciais e de continuação em padrões fixos:
- é (U+00E9) é 11000011 10101001 — um byte inicial de dois bytes e uma continuação.
- 🙂 (U+1F642) é 11110000 10011111 10011001 10000010 — a forma de quatro bytes.
- Um byte com prefixo 10 isolado é uma continuação sem inicial — a assinatura clássica de corrupção.
| Faixa de ponto de código | Bytes | Padrão |
|---|---|---|
| U+0000 – U+007F (ASCII) | 1 | 0xxxxxxx |
| U+0080 – U+07FF | 2 | 110xxxxx 10xxxxxx |
| U+0800 – U+FFFF | 3 | 1110xxxx 10xxxxxx 10xxxxxx |
| U+10000 – U+10FFFF (emoji vivem aqui) | 4 | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
O que a decodificação recusa e por quê
A decodificação aceita formatação bagunçada de propósito: espaços, vírgulas e quebras de linha são removidos antes da análise. Duas rejeições permanecem: uma contagem de bits que não é múltiplo de 8 não pode ser dividida em bytes — o erro relata a contagem exata — e bytes que quebram os padrões acima são recusados por um decodificador fatal de UTF-8 em vez de serem substituídos por U+FFFD.
Essa segunda recusa salva tardes: um decodificador permissivo transforma uma sequência quebrada em uma string de marcas � que parecem plausíveis e estão erradas silenciosamente. Recusar significa que a causa é investigada em vez de enviada.
Onde grupos de 8 bits aparecem em outros lugares
Redes chamam um byte de octeto: um endereço IPv4 é quatro desses grupos em decimal, e uma máscara de sub-rede é uma sequência de 1s seguidos de 0s nos mesmos 32 bits. A visualização binária também explica mojibake — é em UTF-8 é 11000011 10101001, e lido incorretamente como Latin-1 esses bytes são à e ©, o padrão é que você vê quando UTF-8 é decodificado com a codificação errada. Ver os bytes é o diagnóstico mais rápido.
Perguntas frequentes
Converter texto para binário envia algo?
Não. Os bytes vêm do TextEncoder embutido do navegador, decodificado por seu TextDecoder — ambos nesta aba; nenhuma requisição é feita durante uma conversão, o que o painel Rede do DevTools confirma. A página é servida com connect-src 'self', então o navegador recusaria qualquer chamada de saída que um script tentasse.
A forma binária de um caractere é sempre a mesma?
Não — depende da codificação. é é dois bytes (11000011 10101001) em UTF-8, um byte (11101001) em Latin-1. Esta ferramenta sempre usa UTF-8, o padrão da web conforme RFC 3629, combinando o que os navegadores transmitem e o que a maioria dos formatos de arquivo assume.
Quantos bits um emoji ocupa em UTF-8?
A maioria ocupa quatro bytes — 32 bits — porque estão acima de U+10000, a faixa que UTF-8 codifica com um byte inicial 11110xxx e três continuações. Alguns símbolos mais antigos como ☺ estão abaixo de U+10000 e ocupam três. ASCII é o outro extremo: um byte por caractere.
Por que minha decodificação foi recusada por não ser múltiplo de 8?
Bits só se tornam bytes em grupos completos de oito; um resto significa algo está faltando ou a mais — um colar truncado, uma linha descartada, um dígito solto. O erro informa a contagem exata de bits. A formatação nunca é a causa: espaços e quebras de linha são removidos antes da contagem.
O que significa o erro de UTF-8 inválido na decodificação?
Os bytes quebraram o contrato do UTF-8: um byte de continuação sem inicial, uma sequência multibyte cortada no final, ou um padrão impossível. A ferramenta decodifica fatalmente — recusando em vez de substituir por marcas U+FFFD — porque saída com mojibake silenciosa é pior que um erro. Dados que nunca foram UTF-8, como texto Latin-1, ativam isso por design.
Poso colar binário com espaços ou quebras de linha?
Sim. Todo caractere que não seja 0 ou 1 é removido antes da análise, então grupos espaçados, despejos de um byte por linha e listas separadas por vírgula todos são analisados. Se os próprios dígitos estiverem danificados, a decodificação estrita captura isso — formatação é perdoada, dados não.
Quais ferramentas relacionadas devo usar a seguir?
- Codificar e decodificar Base64Codifica e decodifica Base64 padrão e URL-safeAbrir
- Base64 vs HexComparação lado a ladoAbrir
- Como funciona o Base64Guia em linguagem simplesAbrir
- Codificar e decodificar URLDistingue + de %20 ao codificar e decodificarAbrir
- Ferramentas de codificaçãoBase64, codificação de URL, hashes e inspeção de tokens.Abrir
- Ferramentas de textoCompare, converta e transforme texto simples e código.Abrir