Uma codificação só é útil se ambas as extremidades concordarem com ela. A menor representação não é necessariamente a melhor escolha quando o receptor precisa de um alfabeto familiar, a carga deve ser digitada por uma pessoa ou a sintaxe circundante trata determinados caracteres de maneira especial. Comece com o protocolo de recebimento.
Hex é detalhado, mas fácil de inspecionar
Hexadecimal escreve cada byte como dois dígitos. A sequência de bytes FF 00 41 torna-se ff0041. Cada par possui um limite de bytes visível, o que ajuda na inspeção de assinaturas de arquivos, somas de verificação e pacotes de protocolo. Ele dobra a contagem de caracteres, mas seu pequeno alfabeto geralmente cabe facilmente em logs e ferramentas de depuração.
Base64 equilibra tamanho e interoperabilidade
Base64 representa três bytes com quatro caracteres. É um ajuste comum para campos binários dentro de formatos baseados em texto. O padrão Base64 inclui sinal de adição e barra; Base64URL substitui esses caracteres quando um protocolo precisa de um alfabeto diferente. As regras de preenchimento e espaços em branco ainda precisam de acordo. Nenhuma das formas informa ao receptor se os bytes decodificados são texto, imagem ou conteúdo compactado.
A codificação percentual pertence aos componentes URL
A codificação percentual grava um byte de escape como %HH. Não é simplesmente um substituto em massa para Base64. O componente determina quais caracteres devem ser escapados e o texto deve primeiro ser codificado como UTF-8. Uma barra pode separar segmentos de caminho enquanto um ponto de interrogação inicia uma consulta; tratar todo o URL como um componente opaco altera seu significado.
console.log(encodeURIComponent('a+b / 中文'));
// a%2Bb%20%2F%20%E4%B8%AD%E6%96%87
Base85 precisa de uma variante exata
Muitos esquemas Base85 representam quatro bytes com cinco caracteres, mas seus alfabetos, delimitadores e casos especiais são diferentes. ASCII85 e Z85 não podem ser considerados intercambiáveis. O Z85 também impõe requisitos de tamanho de bloco. Um alfabeto de alta densidade pode conter pontuação que deve ser escapada novamente no formato circundante, reduzindo o benefício aparente.
Não confunda essas codificações de bytes com a conversão do número inteiro 255 entre bases numéricas. Um arquivo pode começar com zero bytes, enquanto uma representação inteira pode descartar esses zeros iniciais. Um codec de arquivo reversível deve definir como o comprimento e os zeros à esquerda são preservados.
Use Hex para inspeção de bytes, a variante Base64 especificada para transporte binário interoperável, codificação de componente URL para URLs e um esquema especializado somente quando ambas as partes implementarem o mesmo contrato. Compare o tamanho ponta a ponta após o escape e a compactação. RFC 4648 define as famílias padrão Base16, Base32 e Base64, incluindo seus alfabetos distintos.