Wie zeige ich Unicode in einem virtuellen Linux-Terminal an?

19

Das Lesen von Unicode-Daten wird im Linux-Terminal nicht korrekt angezeigt (dh das virtuelle Terminal, das ohne X-Fenster geöffnet wird).

Ich habe hier in einer Diskussion gelesen , dass die Installation von Programmen wie JFBTERM funktioniert. Daher habe ich mich gefragt, ob es keine Möglichkeit gibt, das Terminal so zu konfigurieren (consolefonts?), Dass Unicode ohne zusätzliche Software ordnungsgemäß gehandhabt wird.

Auf Windows-Terminals (gnome-terminal, xterm usw.) sieht es so aus:

gnome-terminal

Auf dem virtuellen Terminal sieht es so aus:

vt

Auf dem virtuellen Terminal mit JFBTERM sieht das so aus:

jbfterm

Hier ist ein Screenshot der Ausgabe von locale:

Gebietsschema

Hier ist die Ausgabe von showconsolefont:

showconsolefont

Weiß jemand, ob es möglich ist, dasselbe nur mit dem virtuellen Standardterminal zu erreichen?

bruno.braga
quelle

Antworten:

5

Mit der Konsolenschrift können Schriftarten in bis zu 512 (glaube ich) verschiedene Glyphen geladen werden. in der Regel jedoch nur 256 Glyphen.

Die Anzeige von Latein, Kyrrilisch oder anderen Sprachen, die weniger als 200 nicht komplexe Symbole verwenden, ist kein Problem.

Bei komplexen Skripten oder Skripten, die viele verschiedene Symbole benötigen (z. B. Japanisch), haben Sie jedoch keine andere Möglichkeit, als ein zusätzliches Layout zu verwenden.

Beachten Sie, dass das Problem der Breite besteht, wenn das Limit von 512 für ASCII und beide Kana-Mengen ausreichen sollte.

CJK und Kana passen zu einem Quadrat, sie sind doppelt so breit wie lateinische Buchstaben. Das kann die Konsole nicht von Anfang an.

Sie könnten auf altes und hässliches "Halfwidth Katakana" zurückgreifen (und vielleicht sogar eine alte Schriftart finden) oder Ihre Konsole auf 40 Spalten Breite einstellen und lateinische Buchstaben haben, die so breit sind wie Kana.

Ich kenne keine solche Konsolenschrift bei Kana. Sie sollten Ihre eigenen zeichnen (es gibt Tools, um dies zu tun, und Sie können einfach die Punkte der japanischen Bitmap-Schriftart kopieren.

Sie können auch iconvKana in ASCII umwandeln.

Pablo Saratxaga
quelle
3

Sie benötigen eine Schriftart, die diese Zeichen tatsächlich enthält. Arch Linux empfiehlt zum Beispiel Lat2-Terminus16.

Probieren Sie es, geben nur den folgenden Befehl in einer virtuellen Konsole: setfont Lat2-Terminus16.

Im Übrigen unterstützen die meisten modernen Distributionen dies bereits ab Werk.

Daniel B
quelle
2

Zusätzlich zu LANG/LC_ALL, stty iutf8benötigt wird , um das Terminal zu sagen , was zu tun, müssen Sie setfontdann eine nützliche Schriftart und Zuordnung zu laden. Wenn Sie immer noch Probleme haben, überprüfen Sie Ihre Kernel-Konfiguration auf CONFIG_NLS_xxEinstellungen. modprobe nls_utf8Wenn sie nicht automatisch geladen wird , müssen Sie dies möglicherweise tun (ich denke, dies ist jedoch nur für Unicode-Dateinamen erforderlich).

Einige Linux-Distributionen bieten unicode_startund unicode_stopSkripte, um dies zu automatisieren.

Wenn dies lesszu Problemen führt, muss möglicherweise die Umgebungsvariable LESSCHARSETfestgelegt (oder deaktiviert, wenn sie falsch ist) werden.

Markus Kuhns UTF-8- und Unicode-FAQ für Unix / Linux ist von unschätzbarem Wert.

mr.spuratic
quelle