ASCII, Unicode e UTF-8: como texto é representado

Compreender a cadeia caractere → code point → encoding → bytes e reconhecer problemas de codificação.

ASCII, Unicode e UTF-8: como texto é representado

Objetivo

Compreender a cadeia caractere → code point → encoding → bytes e reconhecer problemas de codificação.

Conceitos essenciais

ASCII

ASCII definiu códigos para letras inglesas, dígitos, pontuação e controles. É histórico e limitado para a diversidade de escrita mundial.

Unicode

Unicode atribui code points a um vasto repertório de caracteres. Unicode não é simplesmente um único formato de arquivo.

UTF-8

UTF-8 é uma codificação de largura variável para representar code points Unicode como bytes e preserva compatibilidade com ASCII na faixa correspondente.

Mojibake

Quando bytes são decodificados usando uma codificação diferente da utilizada na gravação, caracteres podem aparecer corrompidos, como sequências do tipo ação.

Modelo mental

CARACTERE → CODE POINT UNICODE → UTF-8 → BYTES → ARQUIVO

Exemplo e demonstração

O caractere A possui code point U+0041 e em UTF-8 usa o byte 0x41. Caracteres acentuados podem exigir mais de um byte.

A → U+0041 → 0x41

Experimento / prática

  • Crie um TXT UTF-8 com “ação, café, 日本語” e observe se o editor informa o encoding.
  • Explique por que número de caracteres e número de bytes podem ser diferentes.

Erros comuns

  • Dizer que Unicode é sinônimo de UTF-8.
  • Assumir um byte por caractere para todo texto moderno.
  • Achar que mojibake significa necessariamente arquivo corrompido fisicamente.

Resumo

Ao concluir esta aula, revise o modelo mental e tente explicá-lo com suas próprias palavras antes de avançar.