ASCII, UTF-8, ISO-8859… Você pode ter visto esses nomes estranhos flutuando por aí, mas o que eles realmente significam? Continue lendo enquanto explicamos o que é a codificação de caracteres e como esses acrônimos se relacionam com o texto simples que vemos na tela.
Blocos de construção fundamentais
Quando falamos sobre a linguagem escrita, falamos sobre as letras serem os blocos de construção das palavras, que então constroem frases, parágrafos e assim por diante. As letras são símbolos que representam sons. Quando você fala sobre a linguagem, está falando sobre grupos de sons que se unem para formar algum tipo de significado. Cada sistema de linguagem possui um conjunto complexo de regras e definições que governam esses significados. Se você tem uma palavra, é inútil, a menos que você saiba de que idioma ela é e a use com outras pessoas que falam essa língua.
(Comparação de scripts Grantha, Tulu e Malayalam, Imagem de Wikipedia )
No mundo dos computadores, usamos o termo "personagem". Um personagem é uma espécie de conceito abstrato, definido por parâmetros específicos, mas é a unidade fundamental de significado. O latim ‘A’ não é o mesmo que ‘alfa’ grego ou ‘alif’ árabe porque eles têm contextos diferentes - eles são de idiomas diferentes e têm pronúncias ligeiramente diferentes - então podemos dizer que são caracteres diferentes. A representação visual de um caractere é chamada de “glifo” e diferentes conjuntos de glifos são chamados de fontes. Grupos de personagens pertencem a um “conjunto” ou “repertório”.
Quando você digita um parágrafo e altera a fonte, não está alterando os valores fonéticos das letras, mas sim a aparência delas. É apenas cosmético (mas não sem importância!). Algumas línguas, como o antigo egípcio e o chinês, têm ideogramas; estes representam ideias completas em vez de sons, e suas pronúncias podem variar com o tempo e a distância. Se você substituir um personagem por outro, você está substituindo uma ideia. É mais do que apenas mudar letras, é mudar um ideograma.
Codificação de caracteres
(Imagem de Wikipedia )
Quando você digita algo no teclado ou carrega um arquivo, como o computador sabe o que exibir? É para isso que serve a codificação de caracteres. O texto no seu computador não é na verdade letras, é uma série de valores alfanuméricos emparelhados. A codificação de caracteres atua como uma chave para a qual os valores correspondem a quais caracteres, da mesma forma que a ortografia determina quais sons correspondem a quais letras. O código Morse é uma espécie de codificação de caracteres. Ele explica como grupos de unidades longas e curtas, como bipes, representam personagens. No código Morse, os caracteres são apenas letras, números e pontos finais em inglês. Existem muitas codificações de caracteres de computador que se traduzem em letras, números, acentos, sinais de pontuação, símbolos internacionais e assim por diante.
Freqüentemente, neste tópico, o termo “páginas de código” também é usado. Eles são essencialmente codificações de caracteres usados por empresas específicas, geralmente com pequenas modificações. Por exemplo, a página de código do Windows 1252 (anteriormente conhecida como ANSI 1252) é uma forma modificada do ISO-8859-1. Eles são usados principalmente como um sistema interno para se referir a codificações de caracteres padrão e modificadas que são específicas para os mesmos sistemas. No início, a codificação de caracteres não era tão importante porque os computadores não se comunicavam uns com os outros. Com a internet ganhando destaque e a rede sendo uma ocorrência comum, ela se tornou cada vez mais importante em nosso dia-a-dia, mesmo sem percebermos.
Muitos Tipos Diferentes
(Imagem de sarah sosiak )
Existem muitas codificações de caracteres diferentes por aí, e há muitos motivos para isso. A codificação de caracteres que você escolhe para usar depende de quais são suas necessidades. Se você se comunicar em russo, faz sentido usar uma codificação de caracteres que seja compatível com o cirílico. Se você se comunicar em coreano, vai querer algo que represente bem o Hangul e o Hanja. Se você é um matemático, então você quer algo que tenha todos os símbolos científicos e matemáticos bem representados, bem como os glifos gregos e latinos. Se você é um brincalhão, talvez se beneficie com texto de cabeça para baixo . E, se você deseja que todos esses tipos de documentos sejam vistos por qualquer pessoa, você deseja uma codificação que seja bastante comum e facilmente acessível.
Vamos dar uma olhada em alguns dos mais comuns.
(Trecho da tabela ASCII, imagem de asciitable.com )
- ASCII - O Código Padrão Americano para Intercâmbio de Informações é uma das codificações de caracteres mais antigas. Foi originalmente concebido com base em códigos telegráficos e evoluiu com o tempo para incluir mais símbolos e alguns caracteres de controle não impressos, agora desatualizados. Provavelmente é o mais básico que você pode obter em termos de sistemas modernos, já que é limitado ao alfabeto latino sem caracteres acentuados. Sua codificação de 7 bits permite apenas 128 caracteres, razão pela qual existem várias variantes não oficiais em uso em todo o mundo.
- ISO-8859 - O grupo de codificações de caracteres mais amplamente usado da Organização Internacional de Padronização é o número 8859. Cada codificação específica é designada por um número, muitas vezes prefixado por um moniker descritivo, por exemplo, ISO-8859-3 (Latim-3), ISO-8859-6 (Latim / Árabe). É um superconjunto de ASCII, o que significa que os primeiros 128 valores na codificação são iguais a ASCII. É de 8 bits, no entanto, e permite 256 caracteres, por isso é construído a partir daí e inclui uma gama muito mais ampla de caracteres, com cada codificação específica enfocando um conjunto diferente de critérios. Latin-1 incluía um monte de letras e símbolos acentuados, mas foi posteriormente substituído por um conjunto revisado chamado Latin-9, que inclui glifos atualizados como o símbolo do Euro.
(Trecho da escrita tibetana, Unicode v4, de unicode.org )
- Unicode - Este padrão de codificação visa a universalidade. Atualmente inclui 93 roteiros organizados em vários blocos, com muitos mais em andamento. O Unicode funciona de maneira diferente de outros conjuntos de caracteres, pois em vez de codificar diretamente para um glifo, cada valor é direcionado para um "ponto de código". Esses são valores hexadecimais que correspondem a caracteres, mas os próprios glifos são fornecidos de forma separada pelo programa, como seu navegador da web. Esses pontos de código são comumente descritos da seguinte maneira: U + 0040 (que se traduz em ‘@’ ) Codificações específicas sob o padrão Unicode são UTF-8 e UTF-16. UTF-8 tenta permitir compatibilidade máxima com ASCII. É de 8 bits, mas permite todos os personagens por meio de um mecanismo de substituição e vários pares de valores por personagem. O UTF-16 dispensa a compatibilidade ASCII perfeita para uma compatibilidade mais completa de 16 bits com o padrão.
- ISO-10646 - Esta não é uma codificação real, apenas um conjunto de caracteres Unicode padronizado pela ISO. É mais importante porque é o repertório de personagens usado pelo HTML. Algumas das funções mais avançadas fornecidas pelo Unicode que permitem agrupamento e scripts da direita para a esquerda ao lado da esquerda para a direita estão ausentes. Ainda assim, funciona muito bem para uso na Internet, pois permite o uso de uma ampla variedade de scripts e permite que o navegador interprete os glifos. Isso torna a localização um pouco mais fácil.
Que codificação devo usar?
Bem, ASCII funciona para a maioria dos falantes de inglês, mas não para muito mais. Com mais frequência, você verá ISO-8859-1, que funciona para a maioria dos idiomas da Europa Ocidental. As outras versões do ISO-8859 funcionam para scripts cirílico, árabe, grego ou outros scripts específicos. No entanto, se você deseja exibir vários scripts no mesmo documento ou na mesma página da web, o UTF-8 permite uma compatibilidade muito melhor. Também funciona muito bem para pessoas que usam pontuação adequada, símbolos matemáticos ou caracteres improvisados, como quadrados e caixas de seleção .
(Vários idiomas em um documento, captura de tela de gujaratsamachar.com )
Existem desvantagens em cada conjunto, no entanto. ASCII é limitado em seus sinais de pontuação, por isso não funciona muito bem para edições tipograficamente corretas. Você já digitou copiar / colar do Word apenas para obter uma combinação estranha de glifos? Essa é a desvantagem do ISO-8859, ou mais corretamente, sua suposta interoperabilidade com páginas de código específicas do sistema operacional (estamos olhando para VOCÊ, Microsoft!). A principal desvantagem do UTF-8 é a falta de suporte adequado em aplicativos de edição e publicação. Outro problema é que os navegadores muitas vezes não interpretam e apenas exibem a marca de ordem de bytes de um caractere codificado em UTF-8. Isso resulta na exibição de glifos indesejados. E, é claro, declarar uma codificação e usar caracteres de outra sem declarar / referenciá-los adequadamente em uma página da web torna difícil para os navegadores processá-los corretamente e para os mecanismos de pesquisa indexá-los de forma adequada.
Para seus próprios documentos, manuscritos e assim por diante, você pode usar o que for necessário para realizar o trabalho. No que diz respeito à web, no entanto, parece que a maioria das pessoas concorda em usar uma versão UTF-8 que não usa uma marca de ordem de byte, mas que não é totalmente unânime. Como você pode ver, cada codificação de caractere tem seu próprio uso, contexto e pontos fortes e fracos. Como usuário final, você provavelmente não terá que lidar com isso, mas agora você pode dar um passo extra à frente, se desejar.