O que são codificações de caracteres como ANSI e Unicode e como elas diferem?
ASCII, UTF-8, ISO-8859 ... Você pode ter visto esses estranhos apelidos flutuando, mas o que eles realmente querem dizer? Continue lendo enquanto explicamos o que é a codificação de caracteres e como essas siglas estão relacionadas ao texto simples que vemos na tela.
Fundamental Building Blocks
Quando falamos de linguagem escrita, falamos sobre letras sendo os blocos de construção das palavras, que então constroem sentenças, parágrafos e assim por diante. Letras são símbolos que representam sons. Quando você fala sobre linguagem, você está falando sobre grupos de sons que se juntam 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 língua é e a use com outras pessoas que falam essa língua..
(Comparação de scripts de Grantha, Tulu e Malayalam, imagem da 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 do significado. O latim 'A' não é o mesmo que um grego 'alpha' ou um árabe 'alif' porque eles têm contextos diferentes - eles são de diferentes idiomas e têm pronúncias ligeiramente diferentes - então podemos dizer que eles 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 caracteres pertencem a um "conjunto" ou a um "repertório".
Quando você digita um parágrafo e altera a fonte, você não está alterando os valores fonéticos das letras, você está mudando a aparência deles. É 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 idéias inteiras em vez de sons, e suas pronúncias podem variar ao longo do tempo e da distância. Se você substituir um personagem por outro, estará substituindo uma ideia. É mais do que apenas trocar letras, está mudando um ideograma.
Codificação de caracteres
(Imagem da 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 é realmente 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 como a ortografia determina quais sons correspondem a quais letras. O código Morse é uma espécie de codificação de caracteres. Explica como os grupos de unidades longas e curtas, como os bips, representam os caracteres. Em código Morse, os caracteres são apenas letras inglesas, números e pontos finais. 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..
Muitas vezes, neste tópico, o termo “páginas de código” também é usado. São essencialmente codificações de caracteres usadas 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 dos 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 networking sendo uma ocorrência comum, tornou-se uma importância cada vez maior do nosso dia-a-dia, sem que nos apercebamos disso..
Muitos tipos diferentes
(Imagem de sarah sarah)
Existem várias codificações de caracteres diferentes por aí, e há muitas razões para isso. Qual codificação de caracteres você escolhe usar depende de quais são suas necessidades. Se você se comunica em russo, faz sentido usar uma codificação de caracteres que suporte bem o cirílico. Se você se comunicar em coreano, então você vai querer algo que represente bem Hangul e Hanja. Se você é um matemático, então você quer algo que tenha todos os símbolos científicos e matemáticos bem representados, assim como os glifos gregos e latinos. Se você é um brincalhão, talvez você se beneficie do texto invertido. E, se você quiser que todos esses tipos de documentos sejam visualizados por qualquer pessoa, você deseja uma codificação bastante comum e de fácil acesso..
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 ao longo do tempo para incluir mais símbolos e alguns caracteres de controle não impressos, agora ultrapassados. É provavelmente o mais básico possível em termos de sistemas modernos, pois é limitado ao alfabeto latino sem caracteres acentuados. Sua codificação de 7 bits permite apenas 128 caracteres, e é por isso que existem diversas variantes não oficiais em uso em todo o mundo..
- ISO-8859 - O grupo de codificao de caracteres mais utilizado pela Organizao Internacional de Padronizao o nero 8859. Cada codificao especica designada por um nero, muitas vezes antecedido por um sinal de refercia descritivo, e. ISO-8859-3 (Latin-3), ISO-8859-6 (latim / árabe). É um superconjunto do ASCII, o que significa que os primeiros 128 valores na codificação são os mesmos que o ASCII. Ele é de 8 bits, no entanto, e permite 256 caracteres, de modo que ele se desenvolve a partir daí e inclui uma matriz muito mais ampla de caracteres, com cada codificação específica enfocando um conjunto diferente de critérios. O Latin-1 incluiu 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 de script tibetano, Unicode v4, de unicode.org)
- Unicode - Este padrão de codificação visa a universalidade. Atualmente inclui 93 scripts organizados em vários blocos, com muito mais em andamento. Unicode funciona de maneira diferente de outros conjuntos de caracteres, em vez de codificar diretamente por um glifo, cada valor é direcionado para um "ponto de código". Esses são valores hexadecimais que correspondem aos caracteres, mas os próprios glifos são fornecidos de forma independente pelo programa. , como o seu navegador da web. Esses pontos de código são geralmente descritos da seguinte forma: U + 0040 (que se traduz em '@'). Codificações específicas sob o padrão Unicode são UTF-8 e UTF-16. O UTF-8 tenta permitir compatibilidade máxima com ASCII. É de 8 bits, mas permite todos os caracteres através de um mecanismo de substituição e vários pares de valores por caractere. As valas UTF-16 aperfeiçoam a compatibilidade ASCII 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 de Unicode que foi padronizado pelo ISO. É principalmente importante porque é o repertório de caracteres usado pelo HTML. Algumas das funções mais avançadas fornecidas pelo Unicode, que permitem o agrupamento e a direita para a esquerda, juntamente com o script 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, o ASCII funciona para a maioria dos falantes de inglês, mas não para muito mais. Com mais frequência, você verá o ISO-8859-1, que funciona para a maioria dos idiomas da Europa Ocidental. As outras versões do ISO-8859 funcionam para scripts cirílicos, árabes, gregos ou outros scripts específicos. No entanto, se você quiser 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 off-the-cuff, como quadrados e caixas de seleção.
(Vários idiomas em um documento, Screenshot of gujaratsamachar.com)
Há desvantagens para cada conjunto, no entanto. ASCII é limitado em seus sinais de pontuação, por isso não funciona incrivelmente bem para edições tipograficamente corretas. Já digitou copiar / colar do Word apenas para ter alguma estranha combinação 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 na edição e publicação de aplicativos. Outro problema é que os navegadores geralmente não interpretam e apenas exibem a marca de ordem de byte de um caractere codificado em UTF-8. Isso resulta em glifos indesejados sendo exibidos. E, é claro, declarar uma codificação e usar caracteres de outra sem declará-los / referenciá-los corretamente em uma página da Web dificulta que os navegadores os processem corretamente e que os mecanismos de pesquisa os indexem adequadamente.
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, 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 isso não é inteiramente unânime. Como você pode ver, cada codificação de caracteres 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 a mais se você escolher.