Back

Entendendo as Codificações de Caracteres: ASCII, Unicode e UTF-8

Você já abriu um arquivo de texto e viu um monte de caracteres estranhos ou símbolos como é?

Isso é chamado de Mojibake (texto distorcido), e acontece quando o computador está confuso sobre qual "Codificação de Caracteres" usar.

Mas o que é exatamente a codificação de caracteres? Vamos mergulhar nos fundamentos de como os computadores lidam com texto.

1. Computadores Só Conhecem Números

No nível mais baixo, os computadores só entendem binário: 0s e 1s.
Para armazenar texto, precisamos de um mapa que atribua um número a cada caractere.

  • A -> 65
  • B -> 66
  • ! -> 33

Este sistema de mapeamento é chamado de Conjunto de Caracteres (Character Set).

2. ASCII: O Padrão Americano (1963)

O primeiro padrão amplamente utilizado foi o ASCII (American Standard Code for Information Interchange).

Usava 7 bits para representar 128 caracteres:

  • Letras inglesas (A-Z, a-z)
  • Números (0-9)
  • Pontuação básica
  • Códigos de controle (nova linha, tabulação)

Isso era ótimo para falantes de inglês. Mas e o resto do mundo?
ASCII não tinha como representar acentos (é, ñ), muito menos chinês ou emojis.

3. O Caos do "ASCII Estendido"

Para suportar outros idiomas, diferentes regiões criaram suas próprias extensões de 8 bits do ASCII.

  • ISO-8859-1 (Latin-1): Adicionou acentos da Europa Ocidental.
  • Windows-1252: Semelhante ao Latin-1, mas com algumas diferenças.
  • Shift_JIS: Para japonês.
  • EUC-KR: Para coreano.

O Problema:
Se você abrisse um arquivo salvo em Shift_JIS usando ISO-8859-1, ele pareceria lixo. Não havia um padrão único que cobrisse todos.

4. Unicode: Um Anel para a Todos Governar

Unicode foi criado para resolver esse caos. Seu objetivo: Atribuir um número único (Code Point) a cada caractere em cada idioma.

  • A -> U+0041
  • é -> U+00E9
  • -> U+D55C
  • 💩 -> U+1F4A9

Unicode define atualmente mais de 149.000 caracteres.

No entanto, Unicode é apenas uma lista de números. Não nos diz como armazenar esses números em bytes. É aí que entram as Codificações.

5. UTF-8: A Solução Genial

Você pode pensar: "Por que não usar simplesmente 32 bits (4 bytes) para cada caractere?" (Isso é o que o UTF-32 faz).
Mas isso quadruplicaria o tamanho do arquivo para texto em inglês, que só precisa de 8 bits.

Entra UTF-8 (Unicode Transformation Format - 8-bit).

É uma Codificação de Largura Variável:

  1. Caracteres ASCII padrão usam 1 byte. (Compatível com ASCII!)
  2. Escritas europeias usam 2 bytes.
  3. Escritas asiáticas (CJK) usam 3 bytes.
  4. Emojis usam 4 bytes.

Como funciona

  • Se um byte começa com 0, é um caractere ASCII de um único byte.
  • Se começa com 110, é o início de uma sequência de 2 bytes.
  • Se começa com 1110, é o início de uma sequência de 3 bytes.

Este design brilhante torna o UTF-8 eficiente para o inglês (mesmo tamanho que ASCII) enquanto é capaz de suportar todos os caracteres do mundo.

Conclusão

Hoje, UTF-8 é o padrão dominante, usado por mais de 98% dos sites.

Ao salvar um arquivo, escolha sempre UTF-8 (sem BOM). Garante que seu texto será legível por qualquer pessoa, em qualquer lugar, em qualquer dispositivo.

Dica Pro: Se você vê é em vez de é, geralmente significa que um arquivo UTF-8 está sendo mal interpretado como Windows-1252. Se você vê ``, muitas vezes significa que um arquivo binário ou uma codificação incompatível está sendo lida como texto.

TechEncodingUnicodeCS Fundamentals

Explore ferramentas relacionadas

Experimente estas ferramentas gratuitas do Pockit