ASCII, Unicode e UTF-8 - Como computadores interpretam os texto
- Kelvem Sousa
- há 16 minutos
- 4 min de leitura
Atualmente, não conseguimos mais enxergar o mundo sem tecnologia. Diariamente, em nossos celulares e computadores, estamos sempre conectados, enviando mensagens, escrevendo documentos, acessando páginas de sites, trabalhando, estudando enfim, tudo por meio digital. Mas você já se perguntou como isso tudo é possÃvel?
Todo texto que lemos em um computador, de um simples "Olá" até um emoji 😊, é na verdade uma sequência de números.
A resposta para isso ser possÃvel são os padrões de codificação de caracteres (encodings), como ASCII, Unicode e UTF-8. Equipamentos eletrônicos não entendem texto da forma como nós, humanos, entendemos. Para eles, tudo é bit (0 ou 1). Então, o que ocorre de fato?
Texto é número
Equipamentos eletrônicos só entendem 0 e 1, então todas as letras precisam ser, de alguma forma, mapeadas para tal.
Por exemplo:
A → 01000001
B → 01000010
Y → 01011001
Z → 01011010Dentro da memória de um computador, tudo é armazenado como números binários. Para que possamos representar texto, precisamos de uma regra que nos diga qual número representa qual caractere. Essa regra é chamada de encoding.
Mas... quem decidiu isso?
Os padrões de codificação foram criados para que todos pudessem seguir de maneira universal.
O padrão ASCII
O ASCII (American Standard Code for Information Interchange) surgiu nos anos 60. Ele utiliza 7 bits, o que corresponde a 128 caracteres (de 0 a 127).
Inclui:
Letras de A a Z (maiúsculas e minúsculas)
Números de 0 a 9
Pontuação
Caracteres de controle (como \n e \t)
Exemplo:
 Caractere |  Decimal |  Binário |
 A |  65 |  01000001 |
 a |  97 |  01100001 |
Entretanto, logo surgiram os problemas. O ASCII funcionava apenas para o inglês básico, e alguns caracteres de outras lÃnguas não eram mapeados.
Por exemplo:
ç, ã, é, ê (português)
ä, ü, ß (alemão)
ñ (espanhol)
æ¼¢å— (japonês/chinês)
Ou seja, era impossÃvel representar a grande maioria das lÃnguas do mundo.
Extensões do ASCII
Para contornar as limitações do ASCII, surgiram várias extensões usando 8 bits (256 caracteres).
Entre elas:
ISO-8859-1 (Latin-1)
Windows-1252
KOI8-R
Shift-JIS
Cada região acabou adotando seu próprio padrão, o que resultou em diversas colisões, pois o mesmo número podia representar caracteres diferentes dependendo do sistema utilizado.
É por isso que, ainda hoje, você vê alguns textos corrompidos, algo que ficou conhecido como mojibake.
Com certeza você já viu algo assim:
Olá, João!O padrão Unicode
Para resolver o problema criado por diversas extensões, outro padrão foi criado, agora com mais abrangência e flexibilidade, o padrão Unicode.
A ideia é que cada caractere do mundo recebe um número único chamado code point, abrangendo assim todos os caracteres existentes de todas as lÃnguas do mundo.
Exemplo:
A → U+0041
ç → U+00E7
ä½ â†’ U+4F60
😊 → U+1F60A
Com isso, atualmente o Unicode suporta mais de 140 mil caracteres.
⚠Importante: Unicode não é um formato de arquivo. Ele apenas faz o mapeamento de caracteres para números.
UTF-8
O UTF-8 é uma forma de representar os code points do Unicode em bytes.
Algumas das suas caracterÃsticas são:
Compatibilidade com ASCII
Usa tamanho variável (1 a 4 bytes)
Economiza espaço para textos em inglês
É o padrão da Web
Como funciona?
O seguinte mapeamento é feito em UTF-8:
Faixa de caracteres | Bytes usados |
ASCII (U+0000 a U+007F) | 1 Byte |
Latim estendido | 2 Bytes |
Ideogramas | 3 Bytes |
Emojis | 4 Bytes |
Exemplo:
A → 01000001 (1 byte)
Ç → 11000011 10100111 (2 bytes)
😊 → 4 bytesPor que o UTF-8 teve sucesso?
Mantém a compatibilidade com ASCII
Funciona bem em múltiplas lÃnguas
Evita o caos dos encodings regionais
Tornou-se padrão em HTML, JSON, APIs, bancos de dados, etc.
Basicamente, toda a web utiliza UTF-8.
UTF-16 e UTF-32
Além do UTF-8, existem outros formatos:
UTF-16
Usa 2 bytes ou 4 bytes
Muito utilizado internamente no Windows e em algumas linguagens de programação, como Java
UTF-32
Sempre usa 4 bytes
Simples de processar
Pouco eficiente em termos de espaço
Cada um tem seus usos especÃficos, mas o UTF-8 dominou por sua eficiência e compatibilidade.
O que acontece quando o encoding dá errado?
Você já viu algo assim?
Olá, João!Isso acontece quando o texto foi salvo em UTF-8, mas foi interpretado como ISO-8859-1 ou outro encoding. Esse fenômeno é chamado de mojibake.
Ele ocorre quando o encoding de salvamento é diferente do encoding de leitura.
Por que encoding ainda importa?
Mesmo hoje, os problemas de encoding ainda são constantes e causam:
Corrupção de dados
Vulnerabilidades em códigos
Bugs
Incompatibilidade entre sistemas
Entender como os encodings funcionam não é apenas conhecimento histórico, é essencial para qualquer desenvolvedor.
Conclusão
A evolução dos encodings representa a transição de uma computação local e limitada para uma internet global e padronizada.
O ASCII resolveu o problema do inglês
O Unicode resolveu o problema do mundo
O UTF-8 tornou isso prático
Todas as vezes que você enviar uma mensagem com emoji, escrever código ou ler um texto em qualquer idioma, lembre-se: por trás de tudo isso, existe um padrão de codificação trabalhando silenciosamente para que tudo funcione.

