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->65B->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:
- Caracteres ASCII padrão usam 1 byte. (Compatível com ASCII!)
- Escritas europeias usam 2 bytes.
- Escritas asiáticas (CJK) usam 3 bytes.
- 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.
Explore ferramentas relacionadas
Experimente estas ferramentas gratuitas do Pockit