Basculer le codage du terminal avec une commande

L’un des serveurs que je ssh utilise souvent l’encodage western au lieu de l’utf-8 (et il est impossible que je change cela).

J’ai commencé à écrire un script bash pour me connecter à ce serveur. Je n’aurai donc pas à taper l’adresse complète à chaque fois, mais j’aimerais améliorer ce script pour qu’il modifie également correctement le codage de la fenêtre du terminal.

La modification que je dois effectuer peut être effectuée à l’aide de la souris en sélectionnant “Terminal” -> “Définir le codage des caractères …” -> “Western (ISO-8859-1)”. Existe-t-il une commande de terminal qui fait la même chose pour la fenêtre / l’écran de terminal en cours?

Clarifier:
Je ne suis pas intéressé par les moyens de changer les parameters régionaux du système sur le site distant – ce système est administré par quelqu’un d’autre, et je n’ai aucune idée de ce qui pourrait dépendre du codage latin-1. Ce que je veux faire est de laisser cette fenêtre de terminal sur mon côté changer le codage de caractères à ce qui est mentionné ci-dessus, de la même manière que je peux le faire avec ma souris et les menus.

    Vous recherchez un luit conçu à cet effet:

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

    Il va convertir la sortie de la commande ssh en UTF-8, vous n’aurez donc pas besoin de changer le codage du terminal.

    Commencez par modifier les parameters régionaux actuels dans votre éditeur favori.

    sudo gedit /var/lib/locales/supported.d/local à quelque chose comme

     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 

    Puis lancez sudo dpkg-reconfigure locales

    Puis définissez le terminal avec LANG=en_GB.ISO-8859-1

    J’espère que ça marche

    Gnome Terminal utilise gconf pour stocker les parameters. Ceux-ci peuvent être manipulés avec gconftool Donc, vous pouvez utiliser:

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

    J’ai testé cela le 12.04. Pour une raison quelconque, le menu ( "Terminal"->"Set Character Encoding..." ) ne semble pas être mis à jour en temps réel, mais le codage de caractères réel est correctement mis à jour.

    Je ne sais pas comment le tester, mais avec Konsole sur Kubuntu, je peux effectuer les tâches suivantes:

    1) Trouver une application enregistrée sur dbus

     $ qdbus 

    J’utilise konsole donc un simple qdbus | grep kons qdbus | grep kons me donne org.kde.konsole

    2) Trouver les sessions en cours à Konsole

     $ qdbus org.kde.konsole | grep Sessions /Sessions /Sessions/1 $ set | grep -i sessions KONSOLE_DBUS_SESSION=/Sessions/1 

    3) Trouver des méthodes utiles

     $ 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) Vérifier le codage actuel

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

    5) Définir le codage

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

    6) Vérifier le codage actuel

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

    Ubuntu aura un programme terminal similaire, mais vous devrez vous débrouiller avec le nom du service, le chemin, la méthode et les arguments corrects.

    Voici une autre solution que j’avais l’habitude de changer de profil (pour la couleur d’arrière-plan) lors de la connexion à un serveur de production. Cela implique xdotool .

    xdotool simulera les séquences de touches nécessaires pour sélectionner l’élément de menu souhaité. Essayez-le d’abord avec votre clavier, puis notez la séquence:

     $ xdotool key alt+t Down c Down Return 

    Cela activera le premier encodage de caractères. Ajoutez d’autres touches Down avant le Return pour en sélectionner d’autres.

    Remarque: pour ssh , vous pouvez également utiliser un fichier ~/.ssh/config pour configurer des alias sur vos serveurs.

    Sur xterm , modifiez le codage en utilisant des séquences de contrôle . Par exemple, dans bash vous obtenez le jeu de caractères UTF-8 en lançant:

     echo -n $'\e%G' 

    Le codage ISO 8859-1 est accessible en exécutant:

     echo -n $'\e%@'