Un profilo Gnome Terminal può utilizzare UTF-8 per impostazione predefinita?


19

Sono su un sistema Ubuntu (penso). Io non ho radice, quindi non posso cambiare le impostazioni internazionali. Voglio fare in modo che il mio profilo terminale predefinito usi UTF-8 per impostazione predefinita. Dovrebbe esserci un modo per farlo, nella .gconf/apps/gnome-terminal/directory da qualche parte, o in una variabile d'ambiente, o qualcosa del genere. Tuttavia, non riesco a trovarlo.

Modifica con maggiori dettagli:

In un terminale, ho:

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

Quando provo ad aggiungere un documento UTF in quel nuovo terminale, ottengo:

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

Che appare sul mio schermo come punti. (gli uffd erano un taglia e incolla. Ho lasciato "\ noise: bgspeech" lì dentro in modo da poter vedere che ascii ha tagliato e incollato correttamente)

Risposte:


12

Credo che gnome-terminal sarà solo Lavora con UTF-8 è abilitata nel guscio, quindi tutto quello che dovete fare è abilitare che . Mettere

export LANG=en_US.UTF-8

dentro ~/.bashrce là.


MODIFICARE:

Bene, quindi la risposta è che al momento non è possibile impostare questo . Gnome Terminal segue l'impostazione LANG dell'ambiente corrente e utilizza la codifica per impostazione predefinita. Quindi è necessario far sì che LANG contenga UTF-8 prima che venga lanciato gnome-terminal. L'impostazione di questa opzione ~/.bashrcdovrebbe essere eseguita: sarà sufficiente disconnettersi e accedere nuovamente.

(Nota che in realtà è meglio metterlo in ~/.bash_profilemodo da poterlo sovrascrivere per i subshells, ma non sono sicuro che bash sia necessariamente eseguito come shell di login come parte della configurazione dell'ambiente Gnome. Vale la pena testarlo ....)


1
non sembra funzionare.
Brian Postow,

Hmm. Per impostazione predefinita, $ LANG? Metterlo nel tuo bashrc lo fa cambiare?
mattdm,

C, e inserendolo nel bashrc lo ha fatto cambiare. Certo, non mi sono disconnesso e riconnesso, ma ho avviato un nuovo terminale, che è iniziato con UTF in LANG (e anche le impostazioni locali sono impostate con UTF) ma il terminale non mostra ancora il giapponese ...
Brian Postow,

1
Prima si stava solo sistemando nella shell all'interno di gnome-terminal. Ora, si sta ambientando nell'ambiente in cui gnome-terminal stesso funziona.
Mattdm,

2
In Ubuntu 10.04, è possibile impostare le variabili di ambiente per l'intera sessione dal ~/.profile- non~/.bashrc , e non è ~/.bash_profileneanche .
Gilles 'SO- smetti di essere malvagio' il

9

È possibile impostare le impostazioni internazionali per gnome-terminalcon il comando seguente dove Defaultè il nome del profilo.

gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding en_US.UTF-8

Questo ha funzionato per me. Ma non era necessario dopo aver cambiato LANG=en_US.UTF-8in .bashrce il riavvio
Antonios Hadjigeorgalis

Ha funzionato alla grande per me!
Josh M.,

7

Ho avuto un problema simile, e quando si imposta LANGa .bash_profilenon fare il trucco, ho scoperto che in Gnome, l'impostazione internazionale predefinita può essere impostata all'inizio di una sessione dalla schermata di login GDM. Questo può essere fatto senza accesso root.


3

Ho appena fatto il check in menu->terminal->set character encodingè utf-8

Il terminale e bash non sono la stessa cosa.

Vorrei iniziare facendo cat utf-8-file(cat e bash passeranno questo file invariato al terminale, (ben effettivamente a stty, stty convertirà newline in carrage return, newline ecc.)) Se questo visualizza correttamente il file, allora gnome-terminal è configurato. (Questo finora è tutto ciò che ho mai fatto, dato che utilizzo utf-8 in inglese; è già stato configurato in Ubuntu 10.10 e Debian 6 per me). Quindi solo per impostare bash ecc.

Rileggere ~ / .bashrc

Se modifichi ~/.bashrcdevi rileggerlo . ~/.bashrc(o avviare una nuova shell) (non dimenticare il punto)


1
Quando cambio manualmente la codifica dei caratteri in utf-8, è lì che lo faccio, ma quando avvio un nuovo terminale gnome, anche da un terminale con le impostazioni locali corrette, la codifica è ancora ascii. Aggiungerò maggiori dettagli alla domanda.
Brian Postow,

3

Ho avuto un problema proprio ora che ho risolto che potrebbe essere rilevante per i nuovi arrivati ​​con le versioni più recenti di GNOME (e gnome-terminal):

Per qualsiasi codifica di testo che si desidera utilizzare, la shell (ad esempio bash) e l'emulatore di terminale (ad esempio gnome-terminal) devono utilizzare la stessa codifica. Quindi, ad esempio, se la shell utilizza en_US.utf8e l'emulatore di terminale utilizza en_US.ISO-8859-1(aka latin1), vedrai uno strano testo nel tuo terminale per qualsiasi programma con output UTF-8.

Ora, non sono in grado di impostare la codifica al momento dell'accesso, come ho visto suggerito sarebbe possibile. Ciò potrebbe essere dovuto al fatto che abbiamo una versione precedente di GDM al lavoro. Ecco perché ho bisogno di una soluzione diversa.

Ad ogni modo, GNOME 3 non sembra provenire automaticamente .bashrcné al .profilemomento del login. Ma fa la fonte .gnomerc, in cui è possibile inserire variabili di ambiente che verranno esportate in programmi GNOME (per quanto ne so).

L'inserimento export LANG="en_US.utf8"in .gnomercquesto modo avvia gnome-terminal usando una codifica UTF-8 per impostazione predefinita, quando viene avviata una nuova istanza. (Cambia la tua locale in base alle tue esigenze.)

Spero che questo sia stato utile a qualcuno!


-1

Come menzionato da altri utenti, indica alla shell con quale codifica si sta utilizzando

export LANG=en_US.UTF-8

Metti questo in .bashrc e gnome-terminal dovrebbe prenderlo al prossimo accesso.

Imposta la codifica per gnome-terminal al volo: barra dei menu> Terminale> Imposta codifica caratteri

Imposta la codifica predefinita in modo permanente: gconf-editor> App> gnome-terminal> Profili> Predefinito> codifica> utf-8


2
Questo non è del tutto vero. Per me, ho un file .profile e un file .bashrc. La mia shell di accesso è bash. gnome-terminal ignora le impostazioni LANG in .bashrc se è in conflitto con le impostazioni LANG in .profile. Pertanto, LANG deve essere impostato in entrambi i file.
Gary,

In un certo senso ... la mia comprensione è che bash usa .profile per le shell di login e .bashrc in caso contrario. Su Linux, i nuovi comandi di Windows utilizzano .bashrc (su Mac, è .profile ). Non sono a conoscenza di alcuna circostanza in cui entrambi vengano eseguiti automaticamente, ma è estremamente comune mettere tutta la configurazione in una e quindi chiamarla dall'altra. In genere, .bashrc viene eseguito da .profile (in genere solo da shell interattive). if [ -n "$BASH_VERSION" -a -f "$HOME/.bashrc"; then . "$HOME/.bashrc"; fi
Edward Falk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.