Cuando ssh
en mi VPS, tengo irssi
ejecutándose en la pantalla. Cuando alguien envía un carácter unicode (como © o €), irssi
muestra basura cuando lo uso a través de la pantalla en una sesión ssh
. Si me conecto a ese irssi
usando el módulo proxy de irssi, desde irssi ejecutándose en mi computadora local, se muestra correctamente.
Del mismo modo, si ejecuto ghci en mi VPS (fuera de una pantalla) e ingreso uno de esos caracteres, se bloquea.
Entonces, obviamente, hay un problema de codificación de caracteres de algún tipo con mi conexión a mi VPS, ya sea en ssh o en la configuración del sistema.
¿Cómo puedo averiguar qué está causando esto y resolverlo?
Detalles:
sistema cliente
sistema VPS
Ejecutar el comando locale
le dará información sobre su configuración regional; la codificación de caracteres viene dada por el LC_CTYPE
ajuste.
En Ubuntu, la configuración regional predeterminada se proporciona en /etc/default/locale
. Puede cambiar la codificación de caracteres configurando LC_CTYPE
en tus ~/.profile
en el VPS, p.
export LC_CTYPE=en_US.UTF-8
Tendrás que asegurarte de que el en_US.UTF-8
locale está disponible. Ubuntu solo genera datos locales para los locales solicitados. Todas las configuraciones regionales en inglés deberían estar disponibles si tiene el paquete language-pack-en-base
instalado. Puede solicitar manualmente su generación con
Sudo locale-gen en
También puede agregar entradas a /var/lib/locales/supported.d/local
para asegurarse de que esté instalada una configuración regional particular (por ejemplo, agregue la línea en_US.UTF-8 UTF-8
).
actally el valor dado en LC_CTYPE es un locale nombre. Es habitual, pero no obligatorio, que la codificación del juego de caracteres esté en el nombre.
Pero si quieres saber, con seguridad, el juego de caracteres, entonces el comando es locale -k charmap
.
~$ LC_CTYPE=C locale -k charmap
charmap="ANSI_X3.4-1968"
~$ LC_CTYPE=fr_BE locale -k charmap
charmap="ISO-8859-1"
(observe cómo el conjunto de caracteres no aparece en los valores LC_TYPE anteriores).