Como as codificações de caracteres estão relacionadas às fontes?


Respostas:


7

Para começar, tudo é baseado em US-ASCII, que é um código de 7 bits com 128 pontos de código no conjunto, numerado de hexa a 00 a 7F ou decimal de 0 a 127. Isso é mapeado para códigos de controle, caracteres alfanuméricos em inglês e pontuação básica

A adição de 1 bit a este para um código de 8 bits (byte) nos dá outros 128 pontos de código ou ASCII estendido.

Conjuntos de caracteres / páginas de código foram necessários desde o início para alterar como o código aponta nos 128 bits superiores mapeados para caracteres para cobrir o alfabeto para o idioma específico que você deseja representar. Isso funciona razoavelmente bem para a maioria das línguas da Europa Ocidental. A ISO 8859-1 / Latin-1 é um exemplo desse conjunto de caracteres. Outro é o Windows-1252, que possui alterações da ISO 8859-1 para ajudá-lo a cobrir mais ou diferentes caracteres.

Os idiomas com conjuntos de caracteres mais complexos, como chinês, japonês e coreano, excedem os recursos do conjunto de 256 pontos de código e usam um código de byte duplo para permitir sua representação.

O Unicode UTF-8 é um esquema de codificação de caracteres de vários bytes (1-4 bytes) com compatibilidade com versões anteriores à ISO 8859-1 / Latin-1, sendo seus primeiros 128 caracteres. Possui espaço para mais de 1 milhão de pontos de código, o que significa que cada ponto de código pode realmente representar um caractere, ao contrário do que acontece com o Extended ASCII, o que significa que um ponto de código é mapeado para um caractere diferente, dependendo do conjunto de caracteres / página de códigos / codificação.

Fontes são glifos mapeados para pontos de código e representam visualmente caracteres. O conteúdo de uma fonte depende de quais idiomas ele foi originalmente concebido para cobrir. Você pode usar o Mapa de Caracteres para ver quais glifos estão contidos na fonte.

As fontes Unicode não cobrem necessariamente todos os pontos de código; é necessário ver onde eles foram destinados a serem usados. Por exemplo, no Windows 7, inicie o Mapa de Caracteres e visualize os caracteres em Calibri e compare-os com Ebrima, Meiryo e Raavi. Observe que eles são muito diferentes porque cada um é adaptado a uma região geográfica diferente.

Quanto às fontes Unicode e ao conjunto de caracteres Windows-1252, o Windows usa uma tabela de mapeamento para converter o Windows-1252 em Unicode, onde não corresponde à ISO 8859-1 para um cenário de "Melhor Ajuste", em que alguns caracteres do caractere Windows-1252 o conjunto pode não ser exibido.


5

Conjunto de caracteres

Um conjunto de caracteres é uma coleção de caracteres, para cada um dos quais um número é atribuído.

Um conjunto de caracteres conhecido é ASCII. Este é um conjunto de 128 caracteres numerados de 0 a 127. Esses números podem ser expressos em 7 bits (portanto, é um conjunto de caracteres de 7 bits)

A maioria, mas não todos os outros conjuntos de caracteres, inclui o conjunto ASCII com a mesma numeração. Exemplos de conjuntos de caracteres que não são semelhantes ao ASCII incluem EBCDIC. Havia também variantes européias no ASCII que tinham caracteres diferentes em determinadas posições (por exemplo, para incluir £)

Codificações

Conjuntos de caracteres grandes, como Unicode, com mais de um milhão de caracteres, exigiriam três ou quatro bytes por caractere para acomodar o grande intervalo de números que foram atribuídos aos caracteres. Em vez disso, eles usam um sistema que permite que esse número seja "codificado" como um, dois, três ou mais bytes. Com o esquema de codificação UTF-8, os caracteres que são iguais aos caracteres ASCII são codificados com bytes únicos com o mesmo valor de byte que no ASCII.

As codificações acima são usadas ao armazenar texto em arquivos.

Tipos de letra

Um tipo de letra é um design específico da representação visual (isto é, forma) para um conjunto de caracteres. As formas são chamadas de glifos. Um tipo de letra pode ter vários glifos para um caractere (considere "a"). Pode haver glifos para pares de caracteres chamados ligaduras (por exemplo, "ff" ou "fi"). Em um tipo de letra, o conjunto de caracteres, para o qual um glifo foi projetado, geralmente difere do conjunto de caracteres em conjuntos de caracteres conhecidos (os tipos de caracteres geralmente não incluem glifos para caracteres de controle ASCII).

Fontes

No contexto dos computadores, uma fonte significa um arquivo que contém glifos ordenados de acordo com algum esquema de numeração (que geralmente não é o mesmo que a numeração em qualquer conjunto de caracteres conhecido). Historicamente, havia fontes de mapeamento de bits que representavam um tamanho específico (em pixels ou pontos) de um tipo de letra. Atualmente, a maioria das fontes usa curvas matemáticas para descrever glifos e, portanto, pode ser dimensionada para representar qualquer tamanho de tipo de letra.

Juntando tudo

Quando você exibe um arquivo de texto, o computador precisa informar (ou adivinhar) a codificação usada no arquivo. Ele usará uma numeração diferente (por exemplo, uma variante de Unicode de 16 bits) para representar o texto na memória e, em seguida, usará as informações em um arquivo de fonte para mapear a representação interna para a numeração (codificação) usada no arquivo de fonte.


3

Uma fonte precisa suportar toda codificação de caracteres?

Não. Não sei se alguém realmente o faz.
Isso significaria que eles teriam todos os personagens imagináveis ​​"neles". As fontes mais comuns usadas para suportar codificações de culturas ocidentais (latim).

Ou uma codificação de caracteres precisa suportar todas as fontes?

A codificação de caracteres, de certa forma, não "suporta" nada, então essa é realmente a maneira errada de ver isso.

O que significam as fontes Unicode? Eles são fontes que suportam apenas Unicode e não suportam, por exemplo, o Windows-1252?

Unicode é um padrão (ou pelo menos está tentando ser um), que suporta um grande número de caracteres, tornando muitas codificações um subconjunto de si mesmo. O Windows 1252 ou CP1252 é uma codificação que possui caracteres latinos mais alguns caracteres da Europa Central. A maioria deles também é "coberta" por unicode. Quase todas as fontes unicode também abrangem o CP1252.


1
O Unicode é inequivocamente um padrão, ISO
10646
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.