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 → ARQUIVOExemplo 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 → 0x41Experimento / 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.