Bagaimana cara menampilkan Unicode di terminal virtual Linux?

19

Membaca data apa pun di Unicode tidak ditampilkan dengan benar di terminal Linux (artinya terminal virtual yang terbuka tanpa X windows).

Saya membaca dalam sebuah diskusi di sini bahwa menginstal program seperti JFBTERM , dan itu berhasil, jadi saya bertanya-tanya apakah tidak ada cara untuk mengkonfigurasi (consolefonts) terminal untuk menangani unicode dengan benar tanpa perangkat lunak tambahan.

Pada terminal Windows (gnome-terminal, xterm, dll) terlihat seperti ini:

terminal gnome

Di terminal virtual terlihat seperti ini:

vt

Pada terminal virtual dengan JFBTERM terlihat seperti ini:

jbfterm

Berikut adalah screenshot dari output locale:

lokal

Ini adalah output dari showconsolefont:

showconsolefont

Adakah yang tahu apakah mungkin untuk mencapai hal yang sama hanya dengan terminal virtual default?

bruno.braga
sumber

Jawaban:

5

Font konsol dapat memuat font hingga 512 (saya pikir, atau sesuatu seperti itu) mesin terbang yang berbeda; namun biasanya hanya 256 mesin terbang.

Untuk menampilkan bahasa Latin, Cyrilik, atau bahasa lain yang menggunakan kurang dari 200 simbol tidak rumit tidak masalah.

Namun, untuk skrip yang rumit, atau skrip yang membutuhkan banyak simbol berbeda (seperti Jepang), Anda tidak memiliki kemungkinan lain selain menggunakan tata letak tambahan untuk menanganinya.

Perhatikan bahwa jika batas 512 harus cukup untuk ASCII dan kedua set Kana, ada masalah lebar.

CJK dan Kana pas dengan persegi, mereka dua kali lebar huruf Latin. Itu bukan sesuatu yang bisa ditangani konsol di luar kotak.

Anda dapat menggunakan "Halfwidth Katakana" yang lama dan jelek (dan mungkin bahkan menemukan font lama dari hal semacam itu), atau mengatur konsol Anda menjadi 40 kolom lebar dan memiliki huruf latin selebar Kana.

Saya tidak tahu font konsol semacam itu dengan Kana; Anda harus menggambar sendiri (ada alat untuk melakukannya, dan Anda bisa menyalin titik-titik font Jepang bitmap.

Juga, Anda bisa menggunakannya iconvuntuk mentransliterasi kana ke ASCII.

Pablo Saratxaga
sumber
3

Anda memerlukan font yang sebenarnya memiliki karakter ini. Arch Linux misalnya merekomendasikan Lat2-Terminus16.

Untuk mencobanya, hanya mengeluarkan perintah berikut di konsol virtual: setfont Lat2-Terminus16.

Sedangkan sisanya, sebagian besar distribusi modern sudah mendukungnya di luar kotak.

Daniel B
sumber
2

Selain itu LANG/LC_ALL, stty iutf8diperlukan untuk memberi tahu terminal apa yang harus dilakukan, Anda mungkin perlu setfontmemuat font dan pemetaan yang berguna. Jika Anda masih mengalami masalah periksa CONFIG_NLS_xxpengaturan kernel Anda untuk pengaturan, Anda mungkin perlu modprobe nls_utf8jika itu tidak memuat secara otomatis (saya pikir ini hanya diperlukan untuk nama file Unicode).

Beberapa distribusi linux menyediakan unicode_startdan unicode_stopskrip untuk mengotomatisasi ini.

Jika lessmenyebabkan masalah, mungkin memerlukan variabel lingkungan LESSCHARSETuntuk diatur (atau tidak disetel jika salah).

UTF-8 dan Unicode FAQ Markus Kuhn untuk Unix / Linux sangat berharga.

mr.spuratic
sumber