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.
Índice
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 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 idioma ela vem e a use com outras pessoas que falam essa língua.
(Comparação de scripts 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 de significado. O latim ‘A’ não é o mesmo que um grego ‘alfa’ ou árabe ‘alif’ porque eles têm contextos diferentes – eles são de línguas 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 muda a fonte, não está mudando os valores fonéticos das letras, está mudando 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 inteiras em vez de sons, e suas pronúncias podem variar com o tempo e a distância. Se você substituir um personagem por outro, estará substituindo uma ideia. É mais do que apenas mudar letras, é mudar 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 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 modificados que são específicos 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 deseja 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 do 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 possível 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, geralmente prefixado por um moniker descritivo, por exemplo, ISO-8859-3 (Latin-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, portanto, é construído a partir daí e inclui uma gama muito mais ampla de caracteres, com cada codificação específica focando em 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 forma: 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 que foi padronizado pela ISO. É mais importante porque é o repertório de caracteres 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, portanto, 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 para editar e publicar 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 na exibição de glifos indesejados. E claro,
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, porém, 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 é totalmente unânime. Como você pode ver, cada codificação de caractere tem seu próprio uso, contexto e pontos fortes e fracos. Como um usuário final, você provavelmente não terá que lidar com isso, mas agora você pode dar um passo extra à frente, se desejar.