21 votos

Interruptor de codificación de terminal con un comando

Uno de los servidores yo con bastante frecuencia ssh a los usos occidentales de codificación en lugar de utf-8 (y no hay manera de que pueda cambiar eso).

He empezado a escribir un script de bash para conectarse a este servidor, así que no tendrá que escribir la dirección completa de cada vez, pero me gustaría mejorar este script, por lo que también cambia la codificación de la ventana de la terminal correctamente.

El cambio que necesita hacer se puede realizar utilizando el ratón para navegar a "Terminal"->"Configurar la Codificación de Caracteres..."->"Occidental (ISO-8859-1)". Hay un comando de terminal que hace la misma cosa, de la actual terminal de ventana/pantalla?

Para aclarar:
Estoy no interesados en las formas de cambiar la configuración regional del sistema en el sitio remoto - que el sistema es administrado por alguien más, y no tengo idea de qué cosas podría depender de la codificación latin-1 no. Lo que quiero hacer es dejar esta ventana de terminal en mi lado del interruptor de codificación de caracteres a la anterior, en la misma forma que yo pueda hacer con mi ratón y los menús.

9voto

Mark Collier Puntos86

Primero editar escenarios actuales en su editor favorito

sudo gedit /var/lib/locales/supported.d/localalgo así como

en_GB.UTF-8 UTF-8
en_US.UTF-8 UTF-8
en_GB.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1

A continuación, ejecutesudo dpkg-reconfigure locales

Luego ajuste conLANG=en_GB.ISO-8859-1

Espero que funciona

2voto

Ghirai Puntos11

GNOME Terminal utiliza gconf para almacenar la configuración. Estos pueden ser manipulados con gconftool por lo tanto, puede utilizar:

gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding ISO-8859-1

He probado esto en 12.04. Por alguna razón, el menú ( "Terminal"->"Set Character Encoding..." ) no parece que se actualizarán en tiempo real, pero la codificación de caracteres actual se actualiza correctamente.

2voto

Shiva Puntos765

No sé cómo probarlo, pero con Konsole en Kubuntu me puede hacer lo siguiente:

1) Encontrar la aplicación registrado para dbus

$ qdbus

Yo uso konsole por lo que una simple qdbus | grep kons me da org.kde.konsole

2) Encontrar las últimas sesiones en Consola

$ qdbus org.kde.konsole | grep Sessions
/Sessions
/Sessions/1

$ set | grep -i sessions
KONSOLE_DBUS_SESSION=/Sessions/1

3) Encontrar métodos útiles

$ qdbus org.kde.konsole /Sessions/1 | grep -i codec
method QByteArray org.kde.konsole.Session.codec()
method bool org.kde.konsole.Session.setCodec(QByteArray codec)

4) Compruebe la codificación actual

$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.codec
UTF-8

5) la codificación del juego de

$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.setCodec ISO-8859-1
true

6) Verificación de la codificación actual

$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.codec
ISO-8859-1

Ubuntu tendrá un similar programa de terminal, pero vas a tener que hacer un poco desconcertante a ti mismo con una correcta servicename, la ruta, el método y los argumentos.

1voto

e7zkw9120 Puntos113

Usted está buscando luit que se ha diseñado para este propósito:

$ luit -encoding ISO-8859-1 ssh remote.host

Va a convertir la salida de la ssh comando a UTF-8 por lo que no necesitará cambiar la codificación de la terminal.

1voto

Turbo J Puntos1688

Aquí hay otra solución que se usa para cambiar el perfil (para el color de fondo) cuando se conecta a un servidor de producción. Involucra xdotool.

xdotool va a simular las pulsaciones de teclas necesaria para seleccionar el elemento del menú deseado. Tratar con el teclado en primer lugar, a continuación, escriba la secuencia :

$ xdotool key alt+t Down c Down Return

Se activará la primera codificación de caracteres. Agregar más Down claves antes del Return a seleccione otro.

Nota: para ssh, también puede utilizar un ~/.ssh/config archivo para configurar un alias a sus servidores.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: