Charset / font no console do Linux

5

Eu quero escrever um jogo que seja executado em um terminal. Eu faço um pouco de coloração de terminal e queria usar alguns caracteres unicode para arte gráfica "ascii". Mas muitos caracteres unicode não são suportados no terminal linux (o terminal não-X, eu não sei como você o chama ... VT100? Eu quero dizer o terminal que usa o modo de texto para saída, nenhum modo gráfico , então a mesma fonte usada na bios é usada para exibir o texto.)

Por exemplo, eu queria desenhar "pixels" de meio caractere usando os caracteres "meio bloco" U + 2580 (▀) e U + 2584 (), mas eles não são suportados no terminal. (Estes são apenas exemplos - eu quero usar muito mais caracteres especiais ...)

Quais caracteres essa fonte suporta? Existe algum documento ou tabela listando esses caracteres? Isso depende do dispositivo ou existe algum "padrão"?

    
por leemes 19.03.2011 / 22:16

1 resposta

5

Esse terminal é chamado de console do Linux, ou às vezes um "vt" (abreviação de terminal virtual). A terminologia pode ser confusa, especialmente porque é usada de maneira inconsistente e às vezes incorretamente. Você pode encontrar mais informações sobre terminologia lendo Qual é a diferença exata entre um 'terminal', um 'shell', um 'tty' e um 'console'? .

O console do Linux suporta fontes configuradas pelo usuário, então a resposta para a sua pergunta é “qualquer que seja o usuário configurado”. O utilitário para alterar a fonte é consolechars , parte das ferramentas de console do Linux . Somente fontes de 8 bits são suportadas pelo hardware, embora você possa solucionar parcialmente isso suportando saída codificada em unicode, mas tendo apenas 256 glifos (outros caracteres são ignorados). Leia a documentação da lct (on-line até o momento da redação, ela deve ser incluída no pacote da sua distribuição) para obter mais informações.

Se você usar o framebuffer do Linux, você pode ter suporte unicode apropriado, seja diretamente ou por meio de fbterm .

Os caracteres de meio bloco estão incluídos na página de códigos 437 da IBM , que é suportada na ROM da maioria dos adaptadores de vídeo para PC. Dependendo de quais personagens você precisa, isso pode ser o suficiente.

Observe que muito poucas pessoas usam o console do Linux atualmente. Algumas pessoas não podem usá-lo por várias razões (não rodando o Linux, rodando em um terminal X remoto, tendo um adaptador de vídeo onde o modo de texto é bugs,…). Eu não recomendo gastar muita energia em apoiá-lo.

    
por 19.03.2011 / 23:20