Czy profil terminala Gnome może domyślnie używać UTF-8?

19

Jestem na systemie Ubuntu (tak myślę). I nie mają korzeni, więc nie mogę zmienić ustawienia regionalne. Chcę, aby mój domyślny profil terminala domyślnie używał UTF-8. Powinien istnieć sposób, aby to zrobić, albo .gconf/apps/gnome-terminal/gdzieś w katalogu, albo w zmiennej środowiskowej, czy coś takiego. Jednak nie mogę tego znaleźć.

Edytuj z większą ilością szczegółów:

W terminalu mam:

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

Kiedy próbuję uzyskać więcej dokumentów UTF w tym nowym terminalu, otrzymuję:

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

Który pojawia się na moim ekranie w postaci kropek. (Uffds były wycinane i wklejane. Zostawiłem tam „\ noise: bgspeech”, aby można było zobaczyć, że ascii zostało wycięte i wklejone poprawnie)

Brian Postow
źródło

Odpowiedzi:

12

Wierzę, że gnome-terminal będzie po prostu pracować z UTF-8 jest włączona w skorupkach, więc wszystko co musisz zrobić, to włączyć , że . Położyć

export LANG=en_US.UTF-8

w ~/.bashrci tam idziesz.


EDYTOWAĆ:

Dobra, więc odpowiedź brzmi: obecnie nie możesz tego ustawić . Gnome Terminal podąża za bieżącym ustawieniem LANG środowiska i używa do tego kodowania jako domyślnego. Musisz więc sprawić, aby LANG zawierał UTF-8 przed uruchomieniem terminala gnome. Ustawienie tej opcji ~/.bashrcpowinno to zrobić - wystarczy się wylogować i zalogować ponownie.

(Zauważ, że tak naprawdę lepiej jest to wstawić ~/.bash_profile, abyś mógł zastąpić to dla podpowłoki, ale nie jestem pewien, czy bash jest koniecznie uruchamiany jako powłoka logowania w ramach konfigurowania środowiska Gnome. Warto przetestować ...)

mattdm
źródło
1
nie wydaje się działać.
Brian Postow
Hmm Czym domyślnie jest $ LANG? Czy umieszczenie tego w swoim bashrc powoduje zmianę?
mattdm
C i umieszczenie go w bashrc spowodowało zmianę. To prawda, że ​​nie wylogowałem się i nie zalogowałem ponownie, ale uruchomiłem nowy terminal, który zaczął się od UTF w LANG (a ustawienia regionalne są również ustawione przez UTF), ale terminal wciąż nie pokazuje japońskiego ...
Brian Postow
1
Wcześniej ustawiał się tylko w powłoce wewnątrz terminala gnome. Teraz ustawia się w środowisku, w którym działa sam terminal gnome.
mattdm,
2
Pod Ubuntu 10.04 można ustawić zmienne środowiskowe dla całej sesji z ~/.profile- nie~/.bashrc , i nie ~/.bash_profilebądź .
Gilles „SO- przestań być zły”
9

Możesz ustawić ustawienia regionalne za gnome-terminalpomocą następującego polecenia, gdzie Defaultjest nazwa profilu.

gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding en_US.UTF-8
Michael Mior
źródło
To zadziałało dla mnie. Ale nie było konieczne po zmianie LANG=en_US.UTF-8w .bashrci ponownym uruchomieniu
Antonios Hadjigeorgalis
Działa świetnie dla mnie!
Josh M.,
7

Miałem podobny problem, a podczas ustawiania LANGw .bash_profilenie załatwi, okazało się, że w Gnome, domyślne ustawienia regionalne można ustawić na początku sesji z ekranu logowania GDM. Można to zrobić bez dostępu użytkownika root.

phreeza
źródło
3

Właśnie sprawdziłem, menu->terminal->set character encodingże to utf-8

Terminal i bash to nie to samo.

Zacznę od zrobienia cat utf-8-file(cat i bash przekażą ten plik w niezmienionej postaci do terminala (właściwie właściwie do stty, stty przekonwertuje znak nowej linii na powrót karetki, znak nowej linii itp.)) Jeśli to wyświetli plik poprawnie, to gnome-terminal jest ustawiony. (Do tej pory to wszystko, co kiedykolwiek zrobiłem, ponieważ używam utf-8 w języku angielskim; zostało już dla mnie skonfigurowane w Ubuntu 10.10 i Debian 6). Więc po prostu skonfiguruj bash itp.

Ponowne czytanie ~ / .bashrc

Jeśli edytujesz ~/.bashrc, musisz go ponownie przeczytać . ~/.bashrc(lub uruchomić nową powłokę) (nie zapomnij kropki)

ctrl-alt-delor
źródło
1
Kiedy ręcznie zmieniam kodowanie znaków na utf-8, właśnie tam to robię, ale kiedy uruchamiam nowy terminal gnome, nawet z terminala z prawidłowymi ustawieniami narodowymi, kodowanie jest nadal ascii. Dodam więcej szczegółów do pytania.
Brian Postow,
3

Właśnie rozwiązałem problem, który może być istotny dla nowoprzybyłych z nowszymi wersjami GNOME (i gnome-terminal):

W przypadku dowolnego kodowania tekstu, którego chcesz użyć, powłoka (np. Bash) i emulator terminala (np. Gnome-terminal) muszą używać tego samego kodowania. Tak więc np. Jeśli używa powłoki en_US.utf8i emulator terminala en_US.ISO-8859-1(aka latin1), to zobaczysz dziwny tekst w twoim terminalu dla dowolnego programu z wyjściem UTF-8.

Teraz nie jestem w stanie ustawić kodowania przy logowaniu, jak widziałem, sugerowane byłoby możliwe. Może to wynikać z faktu, że mamy tutaj starszą wersję GDM. Dlatego potrzebowałem innego rozwiązania.

W każdym razie GNOME 3 nie wydaje się automatycznie pobierać źródła .bashrcani .profilepo zalogowaniu. Ale ma źródło .gnomerc, w którym można umieścić zmienne środowiskowe, które zostaną wyeksportowane do programów GNOME (o ile mi wiadomo).

Oddanie export LANG="en_US.utf8"w .gnomercten sposób rozpoczyna się gnome-terminal przy użyciu kodowania UTF-8 domyślnie, kiedy nowa instancja jest uruchamiana. (Zmień ustawienia regionalne zgodnie z potrzebami).

Mam nadzieję, że było to przydatne dla kogoś!

Zwycięzca
źródło
-1

Jak wspomnieli inni użytkownicy, powiedz powłoce, z jakiego kodowania korzystasz

export LANG=en_US.UTF-8

Umieść to w .bashrc, a gnome-terminal powinien go odebrać przy następnym logowaniu.

Ustaw kodowanie gnome-terminal w locie: Pasek menu> Terminal> Ustaw kodowanie znaków

Ustaw trwale domyślne kodowanie: gconf-editor> Aplikacje> gnome-terminal> Profile> Domyślne> kodowanie> utf-8

Edward Falk
źródło
2
To nie do końca prawda. Dla mnie mam plik .profile i plik .bashrc. Moja powłoka logowania to bash. gnome-terminal ignoruje ustawienia LANG w .bashrc, jeśli jest w konflikcie z ustawieniami LANG w .profile. Tak więc LANG musi być ustawiony w obu plikach.
Gary,
W pewnym sensie … rozumiem, że bash używa .profile do powłok logowania, a inaczej .bashrc . W systemie Linux nowe okna poleceń używają .bashrc (na Macu jest to .profile ). Nie jestem świadomy żadnych okoliczności, w których oba byłyby uruchamiane automatycznie, ale niezwykle powszechne jest umieszczanie całej konfiguracji w jednym, a następnie wywoływanie jej z drugiego. Zazwyczaj .bashrc jest uruchamiany z .profile (zazwyczaj tylko z interaktywnych powłok). if [ -n "$BASH_VERSION" -a -f "$HOME/.bashrc"; then . "$HOME/.bashrc"; fi
Edward Falk,