Glossário

Codificação de caracteres

codificação de texto

Uma codificação de caracteres define como caracteres ou pontos de código são representados por sequências de bytes e depois descodificados.

Definição

Uma codificação de caracteres determina como unidades textuais se convertem em números ou bytes para armazenamento e transmissão e como regressam a texto. Emissor e destinatário devem usar a mesma codificação.

ASCII, UTF-8, UTF-16 e páginas antigas são codificações ou esquemas. Unicode define repertório e pontos; UTF-8 e UTF-16 a sua representação concreta.

Como funciona

O codificador associa sequências válidas e o descodificador aplica as regras inversas. Em UTF-8, A é 41 e é E2 82 AC. Codificações de comprimento variável usam diferentes quantidades de bytes.

O charset HTTP, a declaração do ficheiro ou o protocolo indicam o descodificador. Sem contexto, os mesmos bytes podem produzir textos diferentes.

Exemplo prático

Descodificados como UTF-8, os bytes E2 82 AC produzem . Com uma codificação de byte único alheia produzem outros caracteres; esta corrupção é frequentemente chamada mojibake.

Converter exige descodificar corretamente a origem e codificar os caracteres no destino. Alterar só o rótulo não converte bytes.

Erros frequentes

Uma sequência inválida pode ser rejeitada ou substituída por U+FFFD. Se o destino não representar um carácter, pode ocorrer erro, substituição ou perda.

Marca de ordem dos bytes, endianness, normalização Unicode e fins de linha são assuntos relacionados mas distintos. Codificação não é criptografia.

Perguntas frequentes

Não. Unicode atribui pontos e propriedades; UTF-8 codifica esses pontos em bytes.

Os bytes podem ter sido mal descodificados ou substituídos porque o destino não representava os caracteres.

Não. Alguns bytes são válidos em várias codificações, sobretudo texto ASCII curto. São necessários metadados, BOM ou contexto.

Veja também
Ferramentas relacionadas
Termos relacionados