it-swarm-es.tech

ssh y codificación de caracteres

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

  • Arch Linux x64
  • Codificación UTF-8

sistema VPS

  • Ubuntu Server 10.04
  • Codificación desconocida utilizada. ¿Cómo encuentro esto? (Solo tengo que buscar en mi /etc/rc.conf para Arch)
17
Macha

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).

4
Pablo Saratxaga