O que é codificação de caracteres?
A codificação de caracteres, na programação de computadores, é um método ou algoritmo usado para encontrar uma representação geralmente numérica de um caractere, glifo ou símbolo. O uso da codificação de caracteres nos computadores é necessário porque as informações na memória do computador e na mídia legível por computador são armazenadas como sequências de bits ou números. Isso requer o uso de codificação para converter caracteres não numéricos usados para exibição ou saída legível por humanos em um formato que um computador possa manipular. Em um aplicativo mais específico, os documentos HTML (HyperText Markup Language) que são lidos pelos navegadores da Web podem definir que tipo de codificação de caracteres eles estão usando para permitir que o navegador saiba qual conjunto de caracteres específico usar ao exibir as informações no documento. Existem vários esquemas de codificação em uso, embora muitos desses conjuntos proprietários e legados sejam lentamente substituídos pelo padrão de codificação Unicode®.
Nos primeiros dias dos computadores, quando havia pouco espaço na memória, os caracteres básicos do alfabeto inglês - incluindo pontuação e números - eram armazenados em seqüências de 7 bits, permitindo 128 caracteres diferentes. Nesse esquema original, cada byte de 7 bits representava um caractere do alfabeto inglês, numerado em sequência. Essa codificação de caracteres foi eficiente e acabou sendo padronizada e usada na maioria dos computadores produzidos. Embora o sistema de codificação tenha evoluído para o padrão de codificação Unicode®, o conceito permaneceu o mesmo. Ou seja, cada caractere único em um idioma está diretamente relacionado a um único número em um grande conjunto de caracteres padrão, e esse número é o que um computador usa para armazenar, processar e indexar o caractere.
Outros tipos de codificação de caracteres foram desenvolvidos por diferentes razões. Alguns deles, voltados especificamente para o alfabeto inglês e destinados a serem usados para texto, mapearam seus caracteres em sequências de 7 bits e depois os espalharam por bytes ou octetos de 8 bits. Isso teve o efeito de economizar 1 bit por octeto, usando efetivamente a codificação de caracteres como um tipo de compactação. Outros esquemas de codificação tentaram fornecer informações básicas sobre um caractere e, em seguida, caracteres adicionais para representar acentos especiais que poderiam ser usados ao escrever em um idioma diferente, embora estes tenham sido largamente abandonados pelos métodos mais simples de codificação um para um.
Nos documentos HTML, a codificação de caracteres é aproximadamente a mesma do conceito mais amplo, exceto que a codificação definida abrange um conjunto inteiro de caracteres. Isso pode ser importante não apenas para idiomas estrangeiros, mas para documentos que usam símbolos específicos para ciências ou matemática que não estão presentes em todos os conjuntos de caracteres. Também pode ser útil para usar pontuação e outros glifos que podem não estar presentes ou são mapeados de maneira diferente nos esquemas de codificação. Os documentos que não definem corretamente uma codificação de caracteres não padrão podem ser exibidos incorretamente ou ser preenchidos com caracteres sem sentido e espaços reservados em vez de informações legíveis.