Problema de codificação de caracteres de terminal BitchX

Problema de codificação de caracteres de terminal BitchX

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_USisso significa "sem utf-8"?

A nl_langinfofunçã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 BitchXestá 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 -apara 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.

informação relacionada