Dalam beberapa program, seperti htop
garis dan bingkai tidak ditampilkan dengan benar. Sebaliknya, mereka ditampilkan sebagai -
dan /
.
Tetapi di komputer lain, mereka ditampilkan dengan benar sebagai garis yang tepat:
Saya tidak yakin apakah ini masalah terminal, atau jika mungkin beberapa paket diperlukan.
Dalam hal ini relevan: Sistem saya adalah Debian Wheezy, juru bahasa bash
saya dan emulator terminal sayagnome-terminal
terminal
character-encoding
Martin Vegter
sumber
sumber
htop
menampilkan karakter ASCII. Namun, jika font terminal default adalah non-Unicode, maka kemungkinan encoding juga, jadi saya telah menambahkannya ke jawaban saya.Jawaban:
Contoh teratas Anda berjalan dengan lokal non-Unicode (yaitu ASCII). Periksa variabel lingkungan $ LANG Anda (coba
export | grep LANG
); Anda kemungkinan besar tidak akan menemukan.UTF-8
sufiks. Coba tambahkan:Contoh Anda yang lain dijalankan dengan lokal UTF-8, yang seharusnya menjadi default untuk shell terbaru. Tampaknya
htop
mendeteksi lokal Anda dan menampilkan karakter ASCII atau Unicode - jadi di gambar bawah, Anda mendapatkan karakter Unicode yang bagus, sementara dengan ASCII Anda mendapatkan beberapa karakter seadanya. Saya sarankan mengubah lokal mesin gambar atas ke yang Unicode (lihat Lokal - Debian Wiki ).Jika itu tidak berhasil, mungkin emulator terminal Anda yang menjadi masalah. Pengkodean default bisa berupa non-Unicode. Ubah penyandian default emulator terminal Anda ke UTF-8 (pada
xfce4-terminal
saya menemukannya di tab Advanced). Jika Anda tidak bisa, mungkin font Anda saat ini tidak mendukung Unicode: coba ubah font Anda menjadi Unicode.[Anehnya, saya menemukan begitu saya mengubah lokal saya menjadi ASCII sekali dalam sesi shell,
htop
selalu menampilkan karakter ASCII, bahkan setelah mengubahnya kembali. Itu mungkin masalah Anda, jika karena alasan tertentu Anda mengubah lokasi Anda di shell sesekali.]sumber
Yang aneh adalah yang
htop
menggunakan ncurses, yang dapat menggambar garis dengan / tanpa Unicode. Namun, melihat kode sumber dalamCRT.c
menunjukkan penjelasan:dan
CRT_treeStrUtf8
nilainyaNamun, ncurses (implementasi kutukan) memiliki simbol portabel untuk ini yang tidak bergantung pada apakah pengkodeannya UTF-8 atau tidak. Beberapa aplikasi (seperti dialog 's
--ascii-lines
pilihan) memberikan pilihan untuk menggunakan ASCII line-menggambar, tetapi sebuah aplikasi yang bahkan tidak mencoba untuk menggunakan line-menggambar disediakan dalam ncurses tidak membuat penggunaan efektif dari perpustakaan tersebut.Singkatnya, ketika Anda menemukan program yang berperilaku seperti itu, Anda harus melaporkannya sebagai bug kepada pengembang.
Bacaan lebih lanjut:
border
,wborder
,box
,hline
,whline
,vline
,wvline
,mvhline
,mvwhline
,mvvline
,mvwvline
- membuat kutukan perbatasan, garis horizontal dan vertikaldialog
tangkapan layar ( tidak memerlukan pengkodean UTF-8 untuk menggunakan gambar garis)sumber
LANG
/LC_ALL
mengaktifkan karakter garis Unicode yang diharapkan masukhtop
), ini sangat menarik. Terima kasih telah meluangkan waktu untuk menjelaskannya!