Como usar
- Digite ou cole o texto na caixa de entrada.
- Todas as codificações são atualizadas enquanto você digita: binário, octal, decimal, hex, as variantes de Base32, de Base36 a Base91, uuencode e xxencode.
- Compare as saídas para ver qual é a mais curta ou qual usa apenas os caracteres que você pode aceitar.
- Clique em Copiar ao lado do resultado de que você precisa.
Todas as codificações a partir de uma única entrada
Cada codificação desta página transforma os mesmos bytes em um conjunto diferente de caracteres. Vê-las lado a lado é a forma mais rápida de escolher uma codificação para um projeto, de reconhecer uma string encontrada em um log ou arquivo de configuração, ou de entender como os formatos diferem. O texto é codificado como bytes UTF-8, então uma letra acentuada conta como dois bytes e um caractere chinês como três. Tudo é executado no seu navegador.
- Números por byte. Binário, octal e decimal escrevem cada byte separadamente. São fáceis de ler, mas longos.
- Grupos de bits. Hex, Base32 (com Base32hex, Crockford e z-base-32), Base64 e Base64URL atribuem a cada caractere um número fixo de bits, então o tamanho da saída depende apenas do tamanho da entrada.
- Números grandes. Base36, Base58 e Base62 tratam a entrada inteira como um único número inteiro grande. O tamanho pode variar em um caractere conforme o valor, e os bytes zero iniciais são mantidos como caracteres iniciais.
- Blocos. Base45 transforma 2 bytes em 3 caracteres, Ascii85, Z85 e Base85 transformam 4 bytes em 5, e Base91 acomoda 13 ou 14 bits em cada par de caracteres.
- Linhas. uuencode e xxencode são formatos antigos de e-mail e Usenet que escrevem os dados em linhas, cada uma começando com um caractere de comprimento.
Comparação do tamanho da saída
Quantos caracteres cada codificação precisa por byte de entrada e qual o tamanho de um valor de 32 bytes, como um hash SHA-256 ou uma chave pública Ed25519, depois de codificado:
| Codificação | Caracteres por byte | 32 bytes viram |
|---|---|---|
| Base16 (hex) | 2,0 | 64 |
| Base32 | 1,6 | 56 (52 sem preenchimento) |
| Base36 | cerca de 1,55 | 49 ou 50 |
| Base45 | 1,5 | 48 |
| Base58 | cerca de 1,37 | 43 ou 44 |
| Base62 | cerca de 1,34 | 42 ou 43 |
| Base64 | cerca de 1,33 | 44 (43 sem preenchimento) |
| Base85 | 1,25 | 40 |
| Base91 | cerca de 1,23 | 39 ou 40 |
Passar de hex para Base64 reduz o tamanho em um terço. Ir além, de Base64 para Base91, economiza apenas cerca de 8% a mais.
Qual codificação escolher
A saída mais curta nem sempre é a melhor. Ascii85 pode conter aspas e barras invertidas, e Base91 pode conter aspas duplas, então ambas podem precisar de escape em JSON, HTML ou comandos de shell. Pense em onde a string vai ser usada:
- URLs e nomes de arquivo: Base64URL, Base58 ou Base62.
- Leitura em voz alta ou digitação manual: Crockford Base32 ou Base58, que deixam de fora caracteres parecidos entre si.
- Sistemas que não diferenciam maiúsculas e minúsculas: hex, Base32 ou Base36.
- QR codes: Base45, que usa apenas os caracteres do modo alfanumérico do QR code.
- Texto compacto em PDF, Git ou ZeroMQ: Ascii85, Base85 ou Z85.
- Máxima compatibilidade: Base64, que quase todas as linguagens e plataformas suportam.
Perguntas frequentes
Qual codificação gera a saída mais curta?
Entre as codificações desta página, Base91 é a mais compacta, com cerca de 1,23 caractere por byte, seguida por Ascii85, Z85 e Base85, com 1,25. Base64 precisa de cerca de 1,33, mas tem suporte muito mais amplo, e é por isso que costuma ser a escolha padrão.
Por que os resultados em Base58 e Base62 variam de tamanho para entradas do mesmo tamanho?
Eles convertem a entrada inteira como um único número grande, então o tamanho depende do valor e não apenas da quantidade de bytes. Cada byte zero inicial também acrescenta um caractere inicial. Hex, Base32 e Base64 sempre geram o mesmo tamanho para a mesma quantidade de bytes.
Posso decodificar uma string nesta página?
Por que a saída em binário é tão longa?
O binário escreve 8 dígitos para cada byte, além dos separadores, então tem pelo menos quatro vezes o tamanho do hex. Ele serve para observar bits individuais, não para armazenar ou transmitir dados.
Meu texto é enviado a um servidor?
Não. Todas as codificações são calculadas por JavaScript no seu navegador, e o texto nunca sai do seu dispositivo.