eu corriCadelaXem três sistemas operacionais Linux diferentes porque recebi esse estranho (ponto de interrogação) em dois deles (Linux OpenSUSE 11.4 e BackTrack 5 R1) usando yakuake/konsole (OpenSUSE) e terminator/tilda (BT 5 R1).
No entanto, no PuppyLinux Lucid 528 com RoxTerm o caractere é exibido como deveria ser (é o caractere grego "fi"). Agora, tanto no SUSE quanto no BT, verifiquei o valor de $LC_CTYPE, e é o mesmo que no Puppy Linux (ou seja, en_US, portanto, sem codificação utf-8).
Eu experimentei no SUSE e no BT com codificações de caracteres diferentes (das configurações do terminal), notei as mudanças, mas o texto ainda estava às vezes distorcido, em vez do ponto de interrogação, recebi alguns "u" estranhos e ininteligíveis ( no Puppy é sempre exibido corretamente).
O que poderia causar esse problema irritante?
O que poderia ser diferente e como posso verificar a diferença?
Responder1
Há várias coisas acontecendo aqui.
Você pode primeiro ter certeza de que LC_CTYPE=en_US
isso significa "sem utf-8"?
A nl_langinfo
função pode ajudar, por exemplo:
$ python
>>> import locale
>>> locale.setlocale(locale.LC_CTYPE, 'en_US')
'en_US'
>>> locale.nl_langinfo(locale.CODESET)
'ISO-8859-1'
Em segundo lugar, seria útil tentar alterar apenas uma variável de cada vez. Por exemplo, se o RoxTerm funciona no PuppyLinux, ele funciona no OpenSUSE e/ou BackTrack? E você também pode dizer qual versão BitchX
está usando, caso isso faça diferença?
Finalmente, o IRC não fornece nenhuma informação de codificação de caracteres, então o servidor e todos os usuários de um canal precisam concordar com uma codificação de caracteres. Acho que hoje em dia a maioria dos usuários usa UTF-8, então talvez você devesse tentar alterar suas configurações para UTF-8.
ATUALIZAR
Você disse que o BitchX não suporta UTF-8.
Então acho que você terá problemas para conversar com outros usuários.
Mas se todos os outros falam grego e também usam BitchX, então talvez você queira usar oConjunto de caracteres grego ISO-8859-7.
No meu sistema, os únicos dois locais que suportam ISO-8859-7 prontos para uso são os do idioma grego, por exemplo, el_GR.iso88597
.
Corra locale -a
para ver uma lista completa de suas opções e escolha uma que inclua esse conjunto de caracteres.
Responder2
O ponto de interrogação no losango provavelmente significa que seu programa cliente aceita caracteres e os passa para o mecanismo de exibição (estou correto que o BitX é apenas um programa de terminal?), mas o terminal não consegue renderizá-lo. Portanto, é provável que haja um problema de configuração do terminal - por exemplo, a fonte selecionada não contém glifos para caracteres gregos. Você pode testá-lo copiando e colando deste terminal para outro com algo como "hexdump -C" em execução - mostraria o ponto de código phi (U + 03C6, então `CF 86 'no hexdump de utf-8). Nesse caso, tente selecionar uma fonte que suporte grego.
Ver algo como \u03C6, etc. significa que provavelmente a localidade está quebrada (não Unicode), então o cliente aceita caracteres, aplica o tratamento Unicode a eles, mas não consegue produzi-los diretamente e muda para o modo de fallback. Então, acho que as configurações SuSE e BT têm en_US como alias para codificação não Unicode, provavelmente ISO-8859-1. Tente definir en_US.UTF-8 diretamente e compare os efeitos.