Bisakah profil Terminal Gnome menggunakan UTF-8 secara default?

19

Saya menggunakan sistem Ubuntu (saya pikir). Saya tidak punya root, jadi saya tidak bisa mengubah lokal. Saya ingin membuat profil terminal default saya menggunakan UTF-8 secara default. Seharusnya ada cara untuk melakukan ini, baik di .gconf/apps/gnome-terminal/direktori di suatu tempat, atau dalam variabel lingkungan, atau sesuatu. Namun, sepertinya saya tidak dapat menemukannya.

Edit dengan lebih detail:

Di terminal, saya punya:

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

Ketika mencoba lebih banyak dokumen UTF di terminal baru itu, saya mendapatkan:

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

Yang muncul di layar saya sebagai titik. (uffds adalah cut and paste. Saya meninggalkan "\ noise: bgspeech" di sana sehingga Anda dapat melihat bahwa ascii memotong dan menempel dengan benar)

Brian Postow
sumber

Jawaban:

12

Saya percaya bahwa gnome-terminal akan Hanya Bekerja dengan UTF-8 diaktifkan di shell, sehingga semua yang perlu Anda lakukan yaitu mengaktifkan itu . Taruh

export LANG=en_US.UTF-8

di dalam ~/.bashrcdan di sana Anda pergi.


EDIT:

Oke, jadi, jawabannya saat ini Anda tidak dapat mengatur ini . Terminal Gnome mengikuti pengaturan LANG lingkungan saat ini dan menggunakan pengkodean untuk itu sebagai default. Jadi, Anda perlu LANG untuk memuat UTF-8 sebelum gnome-terminal diluncurkan. Pengaturan ini ~/.bashrcharus dilakukan - Anda hanya perlu keluar dan masuk lagi.

(Perhatikan bahwa sebenarnya lebih baik untuk meletakkan ini ~/.bash_profilesehingga Anda dapat menimpanya untuk subkulit, tapi saya tidak yakin bahwa bash harus dijalankan sebagai shell login sebagai bagian dari pengaturan lingkungan Gnome. Itu layak untuk diuji ....)

mattdm
sumber
1
tampaknya tidak berfungsi.
Brian Postow
Hmm. Di mana $ LANG diatur secara default? Apakah menempatkan itu di bashrc Anda membuatnya berubah?
mattdm
C, dan memasukkannya ke dalam bashrc membuatnya berubah. Memang, saya tidak keluar dan masuk lagi, tapi saya memulai terminal baru, dan itu dimulai dengan UTF di LANG (dan lokal diatur dengan UTF juga) tetapi terminal masih tidak menunjukkan bahasa Jepang ...
Brian Postow
1
Sebelumnya, itu hanya diatur di shell di dalam terminal gnome. Sekarang, ini sudah diatur di lingkungan di mana gnome-terminal itu sendiri berjalan.
mattdm
2
Di bawah Ubuntu 10.04, Anda dapat mengatur variabel lingkungan untuk seluruh sesi dari ~/.profile- bukan~/.bashrc , dan juga tidak~/.bash_profile .
Gilles 'SO- stop being evil'
9

Anda dapat mengatur lokal untuk gnome-terminaldengan perintah berikut ini di mana Defaultadalah nama profil.

gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding en_US.UTF-8
Michael Mior
sumber
Ini berhasil untuk saya. Tapi itu tidak perlu setelah mengubah LANG=en_US.UTF-8dalam .bashrcdan restart
Antonios Hadjigeorgalis
Bekerja dengan baik untuk saya!
Josh M.
7

Aku punya masalah yang sama, dan ketika pengaturan LANGdi .bash_profiletidak melakukan trik, saya menemukan bahwa di Gnome, lokal default dapat diatur pada awal sesi dari layar GDM login. Ini dapat dilakukan tanpa akses root.

phreeza
sumber
3

Saya baru saja check-in menu->terminal->set character encodingutf-8

Terminal dan bash bukanlah hal yang sama.

Saya akan mulai dengan melakukan cat utf-8-file(cat dan bash akan melewatkan file ini tidak berubah ke terminal, (sebenarnya sebenarnya untuk stty, stty akan mengubah baris baru ke pengembalian carrage, baris baru dll)) jika ini menampilkan file dengan benar maka terminal gnome-terminal diatur. (Sejauh ini adalah semua yang pernah saya lakukan, karena saya menggunakan utf-8 dalam bahasa Inggris; sudah diatur di Ubuntu 10.10 dan Debian 6 untuk saya). Jadi hanya mengatur bash dll.

Membaca ulang ~ / .bashrc

Jika Anda mengedit, ~/.bashrcAnda harus membacanya kembali . ~/.bashrc(atau memulai shell baru) (jangan lupa titiknya)

ctrl-alt-delor
sumber
1
Ketika saya secara manual mengubah pengkodean karakter ke utf-8, di situlah saya melakukannya, tetapi ketika saya memulai terminal gnome baru, bahkan dari terminal yang memiliki lokal yang benar, pengkodeannya masih ascii. Saya akan menambahkan rincian lebih lanjut ke pertanyaan.
Brian Postow
3

Saya punya masalah baru saja ketika saya memperbaikinya yang mungkin relevan untuk pendatang baru dengan versi GNOME yang lebih baru (dan gnome-terminal):

Untuk penyandian teks apa pun yang ingin Anda gunakan, shell (mis. Bash) dan terminal emulator (mis. Terminal gnome) harus menggunakan penyandian yang sama. Jadi misalnya jika shell menggunakan en_US.utf8dan terminal emulator menggunakan en_US.ISO-8859-1(alias latin1), maka Anda akan melihat teks aneh di terminal Anda untuk program apa pun dengan output UTF-8.

Sekarang, saya tidak dapat mengatur penyandian saat masuk, seperti yang saya lihat disarankan untuk dilakukan. Ini mungkin disebabkan oleh fakta bahwa kami memiliki versi GDM yang lebih lama di sini. Inilah sebabnya saya membutuhkan solusi yang berbeda.

Bagaimanapun, GNOME 3 tampaknya tidak secara otomatis mencari .bashrcmaupun .profilesaat login. Tapi itu memang sumber .gnomerc, di mana Anda bisa meletakkan variabel lingkungan yang akan diekspor ke program GNOME (sejauh yang saya tahu).

Menempatkan export LANG="en_US.utf8"di .gnomercsehingga mulai gnome-terminal menggunakan UTF-8 encoding secara default, ketika sebuah contoh baru dimulai. (Ubah lokal Anda sesuai dengan kebutuhan Anda.)

Semoga ini bermanfaat bagi seseorang!

Pemenang
sumber
-1

Seperti yang disebutkan oleh pengguna lain, beri tahu shell yang menggunakan enkode yang Anda gunakan

export LANG=en_US.UTF-8

Masukkan ini dalam .bashrc dan gnome-terminal harus mengambilnya pada login selanjutnya.

Atur penyandian untuk gnome-terminal dengan cepat: Menu> Terminal> Setel Penyandian Karakter

Setel penyandian default secara permanen: gconf-editor> Aplikasi> gnome-terminal> Profil> Default> penyandian> utf-8

Edward Falk
sumber
2
Ini tidak sepenuhnya benar. Bagi saya, saya punya file .profile dan .bashrc. Shell login saya adalah bash. gnome-terminal mengabaikan pengaturan LANG di .bashrc jika bertentangan dengan pengaturan LANG di .profile. Jadi, LANG perlu diatur di kedua file.
Gary
Semacam ... pemahaman saya adalah bahwa bash menggunakan .profile untuk shell login, dan .bashrc sebaliknya. Di Linux, jendela perintah baru menggunakan .bashrc (di Mac, ini. Profil ). Saya tidak mengetahui keadaan di mana keduanya akan berjalan secara otomatis, tetapi sangat umum untuk menempatkan semua konfigurasi Anda menjadi satu dan kemudian memanggilnya dari yang lain. Biasanya, .bashrc dijalankan dari .profile (biasanya hanya dari shell interaktif). if [ -n "$BASH_VERSION" -a -f "$HOME/.bashrc"; then . "$HOME/.bashrc"; fi
Edward Falk