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

8

Quero dizer, uma fonte tem que suportar toda codificação de caracteres? Ou uma codificação de caracteres precisa dar suporte a todas as fontes?

O que significam as fontes Unicode? são fontes que suportam Unicode apenas somente , e eles não suportam, digamos, windows-1252?

    
por DrStrangeLove 15.11.2011 / 05:22

3 respostas

7

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

Adicionando 1 bit a isto para um código de 8 bits (byte) nos dá outros 128 pontos de código ou Extended ASCII.

Conjuntos de caracteres / páginas de códigos foram necessários no início para alterar a forma como o código aponta nos 128 bits superiores mapeados para caracteres para cobrir o alfabeto do idioma específico que você deseja representar. Isso funciona razoavelmente bem para a maioria dos idiomas europeus ocidentais. A ISO 8859-1 / Latin-1 é um exemplo de tal conjunto de caracteres. Outro é o Windows-1252, que tem alterações da ISO 8859-1 para ajudar a cobrir mais ou diferentes caracteres.

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 dois bytes para permitir sua representação.

O Unicode UTF-8 é um esquema de codificação de caracteres de múltiplos bytes (de 1 a 4 bytes) com compatibilidade retroativa com a ISO 8859-1 / Latin-1, sendo seus primeiros 128 caracteres. Ele tem 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, diferente do mapeamento feito com 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 que são mapeados para pontos de código e representam visualmente caracteres. O conteúdo de uma fonte depende de quais idiomas ela deveria cobrir originalmente. Você pode usar o Mapa de caracteres para ver quais glifos estão contidos na fonte.

Fontes Unicode não cobrem necessariamente todos os pontos de código, você precisa ver onde elas deveriam ser usadas. Por exemplo, no Windows 7, abra Mapa de Caracteres e veja os caracteres em Calibri e compare-os com Ebrima, Meiryo e Raavi. Note que eles são muito diferentes porque cada um é adaptado para 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 para Unicode, onde não corresponde à ISO 8859-1 para um cenário "Melhor ajuste" onde alguns caracteres no Windows -1252 conjunto de caracteres pode não ser exibido.

    
por 15.11.2011 / 09:26
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 bem conhecido é ASCII. Este é um conjunto de 128 caracteres numerados de 0 a 127. Esses números podem todos ser expressos em 7 bits (portanto, é um conjunto de caracteres de 7 bits)

A maioria dos outros conjuntos de caracteres, mas não todos , inclui o conjunto ASCII com a mesma numeração. Exemplos de conjuntos de caracteres que não são como ASCII incluem EBCDIC. Havia também variantes europeias em 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 os mesmos que os caracteres ASCII são codificados com bytes simples com o mesmo valor de byte que em ASCII.

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

Tipos de letra

Um tipo de letra é um desenho específico da representação visual (ou seja, forma) para um conjunto de caracteres. As formas são chamadas de glifos. Um tipo pode ter vários glifos para um caractere (considere "um"). Pode ter 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 normalmente não incluem glifos para caracteres de controle ASCII).

Fontes

No contexto de computadores, uma fonte significa um arquivo contendo glifos ordenados de acordo com algum esquema de numeração (que muitas vezes não é o mesmo que a numeração em qualquer conjunto de caracteres conhecidos). Historicamente, havia fontes bitmap 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.

Colocando tudo junto

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

    
por 15.11.2011 / 10:37
3

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

Não. Eu não sei se algum deles realmente funciona.
Isso significaria que eles teriam todos os personagens imagináveis "neles". As fontes mais comuns são usadas para suportar codificações de culturas ocidentais (latim).

Ou uma codificação de caracteres precisa oferecer suporte a todas as fontes?

A codificação de caracteres não "suporta" nada, então essa é realmente a maneira errada de analisá-la.

O que significam as fontes Unicode? São fontes que suportam apenas Unicode e não suportam, digamos, o windows-1252?

Unicode é um padrão (ou pelo menos está tentando ser um), que tem suporte para um grande número de caracteres, portanto, fazendo um monte de codificações um subconjunto de si mesmo. O Windows 1252 ou CP1252 é uma codificação que possui caracteres latinos e alguns caracteres da Europa Central. A maioria deles é "coberta" por unicode também. Quase todas as fontes unicode também se encontram, CP1252.

    
por 15.11.2011 / 06:18