ssh y codificación de caracteres


16

Cuando entro sshen mi VPS, tengo irssicorriendo en la pantalla. Cuando alguien envía un carácter unicode (como © o €), irssimuestra basura cuando lo uso a través de la pantalla en una sshsesión. Si me conecto a eso irssiusando 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)

Respuestas:


18

Ejecutar el localecomando le dará información sobre su configuración regional; la codificación de caracteres viene dada por la LC_CTYPEconfiguración.

En Ubuntu, se proporcionan las configuraciones regionales predeterminadas /etc/default/locale. Puede cambiar la codificación de caracteres configurando LC_CTYPEsu ~/.profileen el VPS, p. Ej.

export LC_CTYPE=en_US.UTF-8

Deberá asegurarse de que la en_US.UTF-8configuración regional 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-baseinstalado. Puede solicitar manualmente su generación con

sudo locale-gen en

También puede agregar entradas para /var/lib/locales/supported.d/localasegurarse de que se instala una configuración regional particular (por ejemplo, agregue la línea en_US.UTF-8 UTF-8).


3

Realmente, el valor dado en LC_CTYPE es un nombre de configuración regional . 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 juego de caracteres no aparece en los valores LC_TYPE anteriores).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.