Edição de codificação de caracteres de terminal BitchX

0

Eu corri BitchX em três sistemas operacionais Linux diferentes porque eu recebi este estranho question (ponto de interrogação) em dois eles (Linux OpenSUSE 11.4 e BackTrack 5 R1) usando yakuake / konsole (OpenSUSE) e terminador / 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, nenhuma codificação utf-8).

Eu experimentei tanto o SUSE quanto o BT com codificações de caracteres diferentes (das configurações do terminal), notei as alterações, mas o texto ainda era algumas vezes distorcido, em vez do ponto de interrogação eu recebi um estranho "u" ininteligível -s (em Puppy é sempre exibido corretamente).

O que poderia causar esse problema chato?
O que poderia ser diferente e como posso verificar a diferença?

    
por chimil 23.03.2012 / 18:11

2 respostas

2

Existem várias coisas acontecendo aqui.

Você pode ter certeza de que LC_CTYPE=en_US significa "no utf-8"?

A função nl_langinfo 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 por vez. Por exemplo, se o RoxTerm funciona no PuppyLinux, funciona no OpenSUSE e / ou BackTrack? E você também pode dizer qual versão de BitchX você está usando, caso isso faça diferença?

Finalmente, o IRC realmente não fornece nenhuma informação de codificação de caracteres, então o servidor e todos os usuários em um canal precisam concordar com uma codificação de caracteres. Eu acho que hoje em dia a maioria dos usuários usa UTF-8, então talvez você deva tentar mudar suas configurações para UTF-8?

UPDATE

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 todo mundo está falando grego, e também usando BitchX, então talvez você queira usar a ISO grega Conjunto de caracteres 8859-7 .

No meu sistema, as duas únicas localidades que suportam ISO-8859-7 são as da língua grega, por exemplo, el_GR.iso88597 .

Execute locale -a para ver uma lista completa de suas opções e escolha uma que inclua esse conjunto de caracteres.

    
por 24.03.2012 / 06:03
1

O ponto de interrogação no rhomb provavelmente significa que o seu programa cliente aceita caracteres e os transmite para a exibição do mecanismo (estou correto que o bitchX é apenas um programa de terminal?), mas o terminal não consegue renderizá-lo. Por isso, é provável 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" rodando - ele mostrará phi codepoint (U + 03C6, então 'CF 86' no hexdump de utf-8). Nesse caso, tente selecionar a fonte que suporta grego.

Ver algo como \ u03C6, etc. significa que a localidade provável está quebrada (não Unicode), portanto o cliente aceita caracteres, aplica o tratamento Unicode a eles, mas não consegue exibi-los diretamente e alterna para o modo de fallback. Então, eu suponho que as configurações SuSE e BT tenham en_US como codificação não-Unicode, provavelmente ISO-8859-1. Tente definir en_US.UTF-8 diretamente e compare os efeitos.

    
por 24.03.2012 / 09:03