Tidak dapat mengetik karakter khusus atau umlaut di terminal

13

Lingkungan:
Saya menggunakan Ubuntu 11.10 dengan wmii 3.9 sebagai GUI dan uxterm sebagai terminal dengan bash sebagai shell. Perangkat kerasnya adalah Lenovo ThinkPad W500 dengan tata letak keyboard Swissgerman (jadi saya perlu umlaut). Saya menggunakan ibus untuk input orang Jepang.

Gejala:
Ketika saya mengetikkan kunci / karakter seperti ~, ^di terminal tidak ada yang terjadi. Jika saya menekan ö' (arg: 6)' muncul, dengan ätidak ada yang terjadi, dengan ükadang - kadang perintah dari sejarah muncul.
Ini adalah perilaku yang sama di semua terminal yang saya uji sejauh ini (gnome-terminal, xfce4-terminal, xterm). Ini berfungsi seperti yang diinginkan dalam aplikasi X lainnya seperti browser chromium, skype atau texteditor.

Informasi tambahan:

> locale
LANG=de_CH.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="de_CH.UTF-8"
LC_TIME="de_CH.UTF-8"
LC_COLLATE=en_US.UTF-8
LC_MONETARY="de_CH.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="de_CH.UTF-8"
LC_NAME="de_CH.UTF-8"
LC_ADDRESS="de_CH.UTF-8"
LC_TELEPHONE="de_CH.UTF-8"
LC_MEASUREMENT="de_CH.UTF-8"
LC_IDENTIFICATION="de_CH.UTF-8"
LC_ALL=

> setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+ch+inet(evdev)+terminate(ctrl_alt_bksp)"    };
        xkb_geometry  { include "pc(pc105)"     };
};
jonas
sumber

Jawaban:

17

Saya mengalami masalah yang sama ketika menghubungkan melalui ssh ke Mac OS X menggunakan emulator terminal. Meskipun saya akan mengatur LANG ke de_DE.UTF-8saya tidak bisa mengetikkan karakter dengan umlaut.

Perbaikan yang saya temukan adalah untuk membuat / mengedit ~/.inputrc (atau mengedit baris berikut dalam /etc/inputrc):

set input-meta on
set output-meta on
set convert-meta off

Sekarang saya bisa mengetik umlaut. Saya percaya ini berlaku untuk xterms secara umum.

arcdale
sumber
Terima kasih, ini memperbaiki masalah umlaut! Tapi saya masih belum bisa mengetik karakter seperti ~, ^ atau ¨.
jonas
Ini memperbaiki ini untuk saya juga (setelah login baru) tetapi masih ada sesuatu yang aneh: jika saya mengetik ösaya mendapatkan ö, tetapi tampaknya ada karakter tersembunyi juga: Saya dapat menghapus Backspace dua karakter walaupun saya hanya mengetik satu ö. Memasukkan LANG=de_DE.UTF-8di commandline fises ini untuk sesi itu, tetapi hilang dalam shell baru
rubo77
@ rubo77 tambahkan export LANG=de_DE.UTF-8ke~/.bashrc
naitsirch
5

Atur lokasi yang tepat dengan

sudo dpkg-reconfigure locales

Di sana Anda akan memilih de_DE.UTF-8sebagai pengaturan Anda. Itu memecahkan semua masalah;)

Info: Mengubah nilai untuk set convert-meta offdi /etc/inputrctidak sepenuhnya berfungsi:
Ini memperbaiki jenis ini juga, tetapi masih ada yang aneh: jika saya mengetik ösaya mendapat ö, tetapi tampaknya ada karakter tersembunyi di depan ö: Saya bisa hapus Backspace dua karakter walaupun saya hanya mengetik satu ö

rubo77
sumber
Terima kasih atas jawaban Anda, sayangnya saya tidak dapat menguji hasil saran Anda, karena sistem masalah ini terjadi tidak ada lagi. Selanjutnya, saya tidak mengerti, mengapa mengubah lokal dari de_CH.UTF-8 ke de_DE.UTF-8 harus mengubah situasi.
jonas
Tidak yakin, saya memiliki tata letak bahasa Inggris sebelumnya. Tapi mungkin tata letak ch juga menggunakan deadkey untuk ö?
rubo77
Ya, benar, de_CH adalah tata letak Swiss-Jerman, sangat mirip dengan tata letak Jerman.
jonas
1
Saya pikir jawaban ini harus tetap untuk pengguna yang memiliki masalah yang sama, tetapi jangan gunakan tata letak CH. Saya kira solusinya adalah menjalankan dpkg-reconfigure localeslagi (bukan tata letak spesifik yang saya gunakan)
rubo77
Sepakat! Saya berharap, saya bisa menguji apakah itu memecahkan masalah.
jonas
-1

Selain jawaban yang disebutkan, bisa jadi daerah Anda tidak dikompilasi. Ada file sumber lokal di bawah / usr / share dan kompilasi file lokal di bawah / usr / lib. Yang di bawah / usr / lib mungkin rusak atau tidak dikompilasi untuk memperbaikinya Anda dapat menggunakan utilitas localedef untuk mengkompilasi file. Atau pada sistem berbasis Debian dpkg-mengkonfigurasi ulang.

Toasterson
sumber