Problema de codificación de caracteres terminales BitchX

Problema de codificación de caracteres terminales BitchX

yo corríperraxen tres sistemas operativos Linux diferentes porque obtuve este extraño � (signo de interrogación) en dos de ellos (Linux OpenSUSE 11.4 y BackTrack 5 R1) usando yakuake/konsole (OpenSUSE) y terminator/tilda (BT 5 R1).

Sin embargo, en PuppyLinux Lucid 528 con RoxTerm el carácter se muestra como debería (es el carácter griego "fi"). Ahora, tanto en SUSE como en BT, verifiqué el valor de $LC_CTYPE, y es el mismo que en Puppy Linux (es decir, en_US, por lo que no hay codificación utf-8).

Experimenté tanto en SUSE como en BT con diferentes codificaciones de caracteres (desde la configuración del terminal), noté los cambios, pero el texto a veces todavía estaba confuso, en lugar del signo de interrogación obtuve algunas "u" extrañas e ininteligibles ( en Puppy siempre se muestra correctamente).

¿Qué podría causar este molesto problema?
¿Qué podría ser diferente y cómo puedo comprobar la diferencia?

Respuesta1

Aquí están pasando varias cosas.

¿Puedes asegurarte primero de que eso LC_CTYPE=en_USsignifica "no utf-8"?

La nl_langinfofunción puede ayudar, por ejemplo:

$ python
>>> import locale
>>> locale.setlocale(locale.LC_CTYPE, 'en_US')
'en_US'
>>> locale.nl_langinfo(locale.CODESET)
'ISO-8859-1'

En segundo lugar, sería útil intentar cambiar sólo una variable a la vez. Por ejemplo, si RoxTerm funciona en PuppyLinux, ¿funciona en OpenSUSE y/o BackTrack? ¿Y también puedes decir qué versión BitchXestás usando, en caso de que haya alguna diferencia?

Finalmente, IRC realmente no proporciona ninguna información de codificación de caracteres, por lo que el servidor y todos los usuarios de un canal tienen que ponerse de acuerdo sobre una codificación de caracteres. Creo que hoy en día la mayoría de los usuarios usan UTF-8, así que tal vez deberías intentar cambiar tu configuración a UTF-8.


ACTUALIZAR

Dijiste que BitchX no es compatible con UTF-8.

Entonces creo que vas a tener problemas para hablar con otros usuarios.

Pero si todos los demás hablan griego y también usan BitchX, entonces tal vez quieras usar elJuego de caracteres griego ISO-8859-7.

En mi sistema, las únicas dos configuraciones regionales que admiten ISO-8859-7 de fábrica son las del idioma griego, por ejemplo el_GR.iso88597.

Ejecute locale -apara ver una lista completa de sus opciones y elija una que incluya ese conjunto de caracteres.

Respuesta2

El signo de interrogación en rombo probablemente signifique que su programa cliente acepta caracteres y los pasa al motor de visualización (¿estoy en lo cierto en que bitchX es solo un programa de terminal?), pero el terminal no puede representarlo. Por lo tanto, es probable que se trate de un problema de configuración del terminal; por ejemplo, la fuente seleccionada no contiene glifos para caracteres griegos. Puede probarlo copiando y pegando desde esta terminal a otra con algo como "hexdump -C" ejecutándose; mostraría el punto de código phi (U+03C6, por lo tanto, `CF 86' en el volcado hexadecimal de utf-8). Si es así, intente seleccionar una fuente que admita griego.

Ver algo como \u03C6, etc. significa que es probable que la configuración regional esté rota (no Unicode), por lo que el cliente acepta caracteres, les aplica tratamiento Unicode pero luego no los genera directamente y cambia al modo alternativo. Entonces, supongo que las configuraciones de SuSE y BT tienen en_US como alias para la codificación que no es Unicode, probablemente ISO-8859-1. Intente configurar en_US.UTF-8 directamente y compare los efectos.

información relacionada