Skip to main content

Relação entre Base64, Base62 e Tabela ASCII, UTF 8, 16, 32 | Conceito

  • Relação entre Base64, Base62 e Tabela ASCII, UTF 8, 16, 32 | Conceito

info

Entendimento pessoal:

  • Unicode é uma tabela de referência — uma lista de todos os símbolos e seus números (code points).
  • Para armazenar esses dados em bytes temos o UTF 8, 16 e 32.
    SituaçãoMelhor escolhaMotivo
    Web, arquivos texto, JSON, HTMLUTF-8Mais compacto e compatível com ASCII
    Aplicativos Windows / JavaUTF-16Usado nativamente por essas plataformas
    Processamento interno de strings fixasUTF-32Acesso rápido por caractere (índice fixo)
    Olhar a documentação sobre UTF8, 16, 32
    • O Unicode define quais caracteres existem; os UTFs definem como guardar esses caracteres em bytes.
  • Base 62 e 64, pegam os bytes e transforma em ASCII seguros
    • OBS: A tabela ASCII representa os bytes por letras, não quer dizer que ela representa as letras daqueles bytes

🧩 1. Entendendo o processo geral

O que acontece não é que o acento desaparece — ele vira bytes especiais em UTF-8, e o Base64 apenas transforma esses bytes em letras ASCII seguras.

O segredo está em entender as camadas:

[TEXTO COM ACENTOS]
↓ (UTF-8)
[BYTES BINÁRIOS]
↓ (Base64)
[TEXTO ASCII PURO]

🧠 2. Passo a passo com exemplo: “ação”

Vamos ver o que realmente acontece.

🔹 Texto original:

ação

🔹 Etapa 1 — Codificação UTF-8 (texto → bytes)

Cada caractere é transformado em uma sequência de bytes binários:

LetraCódigo UnicodeUTF-8 (hex)Binário
aU+00616101100001
çU+00E7C3 A711000011 10100111
ãU+00E3C3 A311000011 10100011
oU+006F6F01101111

🧩 Resultado em bytes:

61 C3 A7 C3 A3 6F

Observe: o “ç” e o “ã” ocupam 2 bytes cada, pois não estão no ASCII básico.


🔹 Etapa 2 — Codificação Base64 (bytes → ASCII)

Agora, pegamos esses bytes brutos e os transformamos em caracteres seguros do alfabeto Base64 (A–Z, a–z, 0–9, +, /).

📘 Base64 de 61 C3 A7 C3 A3 6F é:

YcOnw6Nv

Esses 8 caracteres (YcOnw6Nv) são todos ASCII válidos! Nada de acentos aqui — mas eles representam os mesmos bytes.


🔹 Etapa 3 — Decodificação reversa

Quando alguém recebe YcOnw6Nv:

1️⃣ Decodifica Base64 → volta para os bytes 61 C3 A7 C3 A3 6F 2️⃣ Decodifica UTF-8 → volta para “ação”

✅ O texto original é recuperado sem perder acentos!


🔍 3. O ponto crucial

O Base64 não entende o que é acento — ele só enxerga bytes. Mas esses bytes já contêm a informação do acento, graças ao UTF-8.

💬 Em outras palavras:

O UTF-8 resolve “como guardar acentos”; o Base64 resolve “como transportar esses bytes com segurança”.


📦 4. Analogia simples

Pense assim:

  • UTF-8 = “Como guardar as letras na caixa” (acento incluído).
  • Base64 = “Como empacotar a caixa para enviar por correio”.

O Base64 não abre a caixa — ele só a transforma num formato de texto seguro (A-Z, a-z, 0-9, +, /).

Quando o destinatário recebe, ele abre a embalagem (Base64) e lê o conteúdo (UTF-8) exatamente como foi enviado.


⚖️ 5. Resumo técnico

EtapaFerramentaFunçãoTipo de texto resultante
Texto original (“ação”)Informação humana“ação”
UTF-8Codificação de caracteresTransforma acentos em bytes61 C3 A7 C3 A3 6F
Base64Codificação de bytesTransforma bytes em texto ASCIIYcOnw6Nv
Decodificação reversaRecupera texto original“ação”

🧭 6. Conclusão

✅ Acentos não somem nem são convertidos diretamente em ASCII. ✅ Eles viram bytes especiais no UTF-8 (ex.: C3 A7 para “ç”). ✅ O Base64 só transforma esses bytes em caracteres ASCII seguros para transporte. ✅ Quando decodifica, os bytes voltam a ser texto com acento normalmente.


💡 Resumo em uma frase:

O acento é guardado nos bytes (via UTF-8), e o Base64 apenas escreve esses bytes com letras ASCII — sem perder nada.