Un profil de terminal Gnome peut-il utiliser UTF-8 par défaut?

19

Je suis sur un système Ubuntu (je pense). Je n'ai pas de racine, donc je ne peux pas changer les paramètres régionaux. Je souhaite que mon profil de terminal par défaut utilise UTF-8 par défaut. Il devrait y avoir un moyen de le faire, soit dans le .gconf/apps/gnome-terminal/répertoire quelque part, soit dans une variable d'environnement, ou quelque chose. Cependant, je n'arrive pas à le trouver.

Modifier avec plus de détails:

Dans un terminal, j'ai:

grid-unv55$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
grid-unv55$ gnome-terminal

Lorsque j'essaie de créer un document UTF dans ce nouveau terminal, j'obtiens:

\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd
\noise:bgspeech \ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd

Qui apparaît sur mon écran sous forme de points. (les uffds étaient un copier-coller. J'ai laissé le "\ noise: bgspeech" là-dedans pour que vous puissiez voir cet ascii coupé et collé correctement)

Brian Postow
la source

Réponses:

12

Je crois que la volonté gnome-terminal juste travail avec UTF-8 est activé dans la coque, donc tout ce que vous devez faire est de permettre que . Mettre

export LANG=en_US.UTF-8

en ~/.bashrcvous allez là - bas.


ÉDITER:

D'accord, donc, la réponse est actuellement que vous ne pouvez pas définir cela . Gnome Terminal suit le paramètre LANG de l'environnement actuel et utilise l'encodage pour cela par défaut. Vous devez donc obtenir que LANG contienne UTF-8 avant le lancement de gnome-terminal. Le paramétrer ~/.bashrcdevrait le faire - vous aurez juste besoin de vous déconnecter et de vous reconnecter.

(Notez qu'il est en fait préférable de mettre cela pour ~/.bash_profileque vous puissiez le remplacer pour les sous-coquilles, mais je ne suis pas sûr que bash soit nécessairement exécuté comme un shell de connexion dans le cadre de la configuration de l'environnement Gnome. Cela vaut la peine d'être testé ....)

mattdm
la source
1
ne semble pas fonctionner.
Brian Postow
Hmm. À quoi $ LANG est-il réglé par défaut? Est-ce que mettre cela dans votre bashrc le fait changer?
mattdm
C, et le mettre dans le bashrc l'a fait changer. Accordé, je ne me suis pas déconnecté et reconnecté, mais j'ai commencé un nouveau terminal, et il a commencé avec UTF dans le LANG (et les paramètres régionaux sont également définis avec UTF) mais le terminal n'affiche toujours pas le japonais ...
Brian Postow
1
Avant, cela ne se faisait que dans le shell à l' intérieur de gnome-terminal. Maintenant, cela se met en place dans l'environnement sous lequel gnome-terminal s'exécute.
mattdm
2
Sous Ubuntu 10.04, vous pouvez définir des variables d'environnement pour toute la session à partir de ~/.profile- non~/.bashrc , et non ~/.bash_profileplus .
Gilles 'SO- arrête d'être méchant'
9

Vous pouvez définir les paramètres régionaux pour gnome-terminalavec la commande suivante où Defaultest le nom du profil.

gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding en_US.UTF-8
Michael Mior
la source
Cela a fonctionné pour moi. Mais était inutile après avoir changé LANG=en_US.UTF-8dans .bashrcet redémarrage
Antonios Hadjigeorgalis
Fonctionne très bien pour moi!
Josh M.
7

J'ai eu un problème similaire et lors du réglage LANG en .bash_profilen'a pas fait l'affaire, je trouve que dans Gnome, les paramètres régionaux par défaut peut être définie au début d'une session de l'écran de connexion GDM. Cela peut être fait sans accès root.

phreeza
la source
3

Je viens de m'enregistrer menu->terminal->set character encoding c'est utf-8

Le terminal et bash ne sont pas la même chose.

Je commencerais par faire cat utf-8-file(cat et bash passeront ce fichier inchangé au terminal, (enfin en fait à stty, stty convertira newline en retour de chariot, newline etc.)) si cela affiche le fichier correctement, alors gnome-terminal est configuré. (Jusqu'à présent, c'est tout ce que j'ai fait, car j'utilise utf-8 en anglais; il a déjà été configuré pour Ubuntu 10.10 et Debian 6 pour moi). Alors, juste pour configurer bash, etc.

Relire ~ / .bashrc

Si vous éditez ~/.bashrcvous devez le relire . ~/.bashrc(ou démarrer un nouveau shell) (n'oubliez pas le point)

ctrl-alt-delor
la source
1
Lorsque je change manuellement l'encodage des caractères en utf-8, c'est là que je le fais, mais quand je démarre un nouveau terminal gnome, même à partir d'un terminal qui a les paramètres régionaux corrects, l'encodage est toujours ascii. J'ajouterai plus de détails à la question.
Brian Postow
3

J'ai eu un problème tout à l'heure que j'ai corrigé qui peut être pertinent pour les nouveaux arrivants avec des versions plus récentes de GNOME (et gnome-terminal):

Pour tout encodage de texte que vous souhaitez utiliser, le shell (par exemple bash) et l'émulateur de terminal (par exemple gnome-terminal) doivent utiliser le même encodage. Ainsi, par exemple, si le shell utilise en_US.utf8et que l'émulateur de terminal utilise en_US.ISO-8859-1(akalatin1 ), alors vous verrez un texte étrange dans votre terminal pour n'importe quel programme avec une sortie UTF-8.

Maintenant, je ne suis pas en mesure de définir l'encodage lors de la connexion, comme je l'ai vu, ce serait possible. Cela peut être dû au fait que nous avons une ancienne version de GDM ici au travail. C'est pourquoi j'ai eu besoin d'une solution différente.

Quoi qu'il en soit, GNOME 3 ne semble pas automatiquement source .bashrcni .profilelors de la connexion. Mais ça fait source.gnomerc , dans lequel vous pouvez mettre des variables d'environnement qui seront exportées vers des programmes GNOME (pour autant que je sache).

La mise export LANG="en_US.utf8"en .gnomercmarche démarre donc gnome-terminal en utilisant un encodage UTF-8 par défaut, lorsqu'une nouvelle instance est démarrée. (Modifiez vos paramètres régionaux en fonction de vos besoins.)

J'espère que cela a été utile à quelqu'un!

Victor
la source
-1

Comme mentionné par d'autres utilisateurs, indiquez au shell avec quel encodage vous utilisez

export LANG=en_US.UTF-8

Mettez ceci dans .bashrc et gnome-terminal devrait le récupérer lors de la prochaine connexion.

Définissez l'encodage de gnome-terminal à la volée: Barre de menus> Terminal> Définir l'encodage des caractères

Définissez l'encodage par défaut de façon permanente: gconf-editor> Apps> gnome-terminal> Profiles> Default> encoding> utf-8

Edward Falk
la source
2
Ce n'est pas tout à fait vrai. Pour moi, j'ai un fichier .profile et un fichier .bashrc. Mon shell de connexion est bash. gnome-terminal ignore les paramètres LANG dans .bashrc s'il entre en conflit avec les paramètres LANG dans .profile. Ainsi, LANG doit être défini dans les deux fichiers.
Gary
En quelque sorte… ma compréhension est que bash utilise .profile pour les shells de connexion, et .bashrc sinon. Sous Linux, les nouvelles fenêtres de commandes utilisent .bashrc (sur Mac, c'est .profile ). Je ne suis au courant d'aucune circonstance où les deux s'exécuteraient automatiquement, mais il est extrêmement courant de mettre toute votre configuration dans une, puis de l'appeler depuis l'autre. En règle générale, .bashrc est exécuté à partir de .profile (généralement uniquement à partir de shells interactifs). if [ -n "$BASH_VERSION" -a -f "$HOME/.bashrc"; then . "$HOME/.bashrc"; fi
Edward Falk