A GUI em tty7
usa fontes X, enquanto tty1
usa fontes de console do Linux (com um limite de 512 glifos diferentes). O console do Linux está mostrando os losangos (dependendo da fonte) onde um caractere de substituição Unicode seria exibido porque o código que ele está tentando exibir não é legal UTF-8.
Você obteria esse comportamento para ISO-8859-1 etc. Você pode lembrar que os códigos ISO-8859-1 0xa0
para 0xff
mapeiam para Unicode 0x00a0
para 0x00ff
. Mas no UTF-8, os bytes parecem diferentes.
"Digitar" o arquivo (talvez com cat
) não é afetado pela localidade. A codificação dos dados e o modo (UTF-8 ou não) do terminal determina se o caractere é impresso normalmente.
Um interessante (errado) recurso do rxvt-unicode é que ele percebe dados não-UTF-8 e Supostamente assume que era ISO-8859-1 e (silenciosamente) o converte em Unicode. Polonês seria ISO-8859-2, que parece mais ou menos o mesmo
Se você estiver usando rxvt-unicode e examinando texto em polonês não UTF8, isso explicaria todos os sintomas da pergunta.
O utilitário file
poderia adivinhar se o texto é UTF-8 ou não.
Continuando com o esclarecimento, aqui estão algumas capturas de tela para mostrar o que você pode obter da fonte padrão no console do Linux. Isso usa o programa de teste ncurses , exibindo mais / menos os códigos 0-255:
Primeiro, os caracteres Latin-1 com o modo UTF-8:
Emseguida,oscaracteresLatin-1semmodoUTF-8:
EusandoomodoUTF-8,masexecutandoluit
com a codificação ISO8859-2, e o mesmo programa de teste usando pl_PL
(uma pequena rotunda, mas algo que você pode comparar):
ecomparecomxterm
:
Em resumo, você pode notar alguns lozenges para o conjunto de caracteres Latin-1 usando as fontes limitadas para o modo UTF-8 no console do Linux. Mas o polonês (um conjunto de caracteres diferente) parece estar bem coberto.