Gnome Terminali profili varsayılan olarak UTF-8 kullanabilir mi?


19

Ben bir Ubuntu sistemindeyim. Köküm yok , bu yüzden yerel ayarı değiştiremiyorum. Varsayılan terminal profilimin varsayılan olarak UTF-8 kullanmasını istiyorum. Bunu bir .gconf/apps/gnome-terminal/yerde ya da bir ortam değişkeninde ya da bir şeyde yapmanın bir yolu olmalı. Ancak bulamıyorum.

Daha fazla ayrıntıyla düzenleyin:

Bir terminalde:

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

Bu yeni terminalde daha fazla UTF belgesi almaya çalıştığınızda şunu elde ederim:

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

Ekranımda noktalar olarak beliren. (Uffds bir kesme ve yapıştırma vardı. "\ noise: bgspeech" orada bıraktım böylece ascii doğru kesilmiş ve yapıştırılmış görebiliyordu)

Yanıtlar:


12

Sana is etkinleştirmek tüm yapmanız gereken bu yüzden UTF-8, kabukta etkindir o gnome-terminal irade Hemen Çalışma inan o . Koymak

export LANG=en_US.UTF-8

içinde ~/.bashrcve oraya gidin.


DÜZENLE:

Tamam, cevap şu anda bunu ayarlayamamanız . Gnome Terminali geçerli ortamın LANG ayarını izler ve bunun için kodlamayı varsayılan olarak kullanır. Bu nedenle, gnome terminali başlatılmadan önce LANG'i UTF-8 içerecek şekilde almanız gerekir . Bu in ayarlanması ~/.bashrcyapmalıyım - Sadece çıkış yapıp tekrar giriş yapmak gerekir.

( ~/.bash_profileBunu alt kabuklar için geçersiz kılabilmek için bunu koymak daha iyidir , ancak bash'ın Gnome ortamını kurmanın bir parçası olarak mutlaka bir giriş kabuğu olarak çalıştırıldığından emin değilim.


1
görünmüyor.
Brian Postow

Hmm. $ LANG varsayılan olarak nedir? Bunu bashrc'nize koymak onu değiştiriyor mu?
mattdm

C ve bashrc'ye koymak onu değiştirdi. Verilen, çıkış yapmadım ve tekrar giriş yapmadım, ancak yeni bir terminal başlattım ve LANG'da UTF ile başladı (ve yerel ayar UTF ile de ayarlandı), ancak terminal hala Japonca göstermiyor ...
Brian Postow

1
Daha önce, sadece gnome terminalinin içindeki kabuğa yerleştiriliyordu . Şimdi, gnome terminalinin çalıştığı ortamda ayarlanıyor.
mattdm

2
Ubuntu 10,04 altında, gelen tüm oturum için ortam değişkenleri ayarlayabilirsiniz ~/.profile- değil~/.bashrc ve değil ~/.bash_profileya .
Gilles 'SO- kötü olmayı bırak'

9

Yerel ayarını , profilin adı olan gnome-terminalaşağıdaki komutla ayarlayabilirsiniz Default.

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

Bu benim için çalıştı. Ama değiştirdikten sonra gereksiz LANG=en_US.UTF-8içinde .bashrcve yeniden başlatmayı
Antonios Hadjigeorgalis

Benim için harika çalıştı!
Josh M.

7

Ben de benzer bir sorun vardı ve ayarlarken LANGiçinde .bash_profilehile yapmadım, ben Gnome, varsayılan yerel GDM giriş ekranından bir oturumun başında ayarlanabilir öğrendim. Bu kök erişimi olmadan yapılabilir.


3

Az önce kontrol ettim menu->terminal->set character encodingutf-8

Terminal ve bash aynı şey değildir.

Ben (eğer cat utf-8-filekedi ve bash bu dosyayı terminale değişmeden geçirecek, (aslında stty, stty, satırbaşı, satırsonu vb. İçin newline dönüştürecektir)) yaparak başlayacaktı eğer bu dosyayı düzgün görüntüler sonra gnome-terminal kurulum. (Bu şimdiye kadar yaptığım tek şey, İngilizce utf-8 kullandığım için; zaten Ubuntu 10.10 ve Debian 6'da benim için kuruldu). O zaman sadece bash vb.

Yeniden okuma ~ / .bashrc

Eğer düzenlerseniz ~/.bashrcbunu yeniden okumalı . ~/.bashrc(veya yeni bir kabuk başlatmak) (nokta unutmak daha dont)


1
Utf-8 karakter kodlamasını elle değiştirdiğimde, bunu yapıyorum, ancak yeni bir gnome terminali başlattığımda, doğru yerel ayara sahip bir terminalden bile, kodlama hala ascii. Soruya daha fazla ayrıntı ekleyeceğim.
Brian Postow

3

Ben sadece şimdi GNOME (ve gnome-terminal) yeni sürümleri ile yeni gelenler için ilgili olabilecek bir sorun vardı:

Kullanmak istediğiniz herhangi bir metin kodlaması için, kabuk (örn. Bash) ve terminal emülatörü (örn. Gnome-terminal) aynı kodlamayı kullanmalıdır. Bu nedenle, örneğin kabuk kullanıyorsa en_US.utf8ve terminal öykünücüsü en_US.ISO-8859-1(aka latin1) kullanıyorsa , UTF-8 çıkışlı herhangi bir program için terminalinizde garip bir metin görürsünüz.

Şimdi, girişte kodlamayı ayarlayamıyorum, gördüğüm gibi mümkün olabileceğini gördüm. Bunun nedeni, burada işyerinde GDM'nin daha eski bir sürümünün olması olabilir. Bu yüzden farklı bir çözüme ihtiyacım vardı.

Her neyse, GNOME 3 otomatik olarak kaynak yapmıyor .bashrcya .profileda giriş yaptıktan sonra görünmüyor . Ancak .gnomercGNOME programlarına aktarılacak ortam değişkenlerini (anlatabildiğim kadarıyla) koyabileceğiniz bir kaynaktır .

Koymak export LANG="en_US.utf8"içinde .gnomercbu şekilde yeni bir örneği başlatılır varsayılan bir UTF-8 kullanarak gnome-terminal başlar. (Yerel ayarlarınızı ihtiyaçlarınıza göre değiştirin.)

Umarım bu birisi için yararlı olmuştur!


-1

Diğer kullanıcılar tarafından belirtildiği gibi, kabuğa hangi kodlamayı kullandığınızı söyleyin

export LANG=en_US.UTF-8

Bunu .bashrc'ye koyun ve gnome-terminal bir sonraki girişte almalıdır .

GNOME terminali için kodlamayı anında ayarlayın : Menü Çubuğu> Terminal> Karakter Kodlamasını Ayarla

Varsayılan kodlamayı kalıcı olarak ayarlayın: gconf-editor> Uygulamalar> gnome terminali> Profiller> Varsayılan> kodlama> utf-8


2
Bu tam olarak doğru değil. Benim için .profile ve .bashrc dosyam var. Giriş kabuğum bash. gnome-terminali, .profile içindeki LANG ayarlarıyla çakışırsa .bashrc içindeki LANG ayarlarını yoksayar. Bu nedenle, her iki dosyada da LANG ayarlanmalıdır.
Gary

Benim anlayışım şudur ki, bash giriş kabukları için .profile ve aksi halde .bashrc kullanır . Linux'ta yeni komut pencereleri .bashrc kullanır (Mac'te .profile ). Her ikisinin de otomatik olarak çalıştırılacağı herhangi bir durumun farkında değilim, ancak tüm yapılandırmanızı bir tanesine koymak ve diğerinden çağırmak son derece yaygındır. Tipik olarak, Bashrc çalıştırılan .profile (etkileşimli kabukları tipik olarak sadece). if [ -n "$BASH_VERSION" -a -f "$HOME/.bashrc"; then . "$HOME/.bashrc"; fi
Edward Falk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.