Come visualizzare Unicode in un terminale virtuale Linux?


19

La lettura di qualsiasi dato in Unicode non viene visualizzata correttamente nel terminale Linux (ovvero il terminale virtuale che si apre senza X windows).

Ho letto in una discussione qui che l'installazione di programmi come JFBTERM , e funziona, quindi mi chiedevo se non c'è modo di configurare (consolefonts?) Il terminale per gestire correttamente Unicode senza alcun software aggiuntivo.

Sui terminali Windows (gnome-terminal, xterm, ecc.) È simile al seguente:

gnome-terminal

Sul terminale virtuale è simile al seguente:

vt

Sul terminale virtuale con JFBTERM è simile al seguente:

jbfterm

Ecco uno screenshot dell'output di locale:

località

Ecco l'output di showconsolefont:

showconsolefont

Qualcuno sa se è possibile ottenere lo stesso risultato solo con il terminale virtuale predefinito?

Risposte:


5

Il font della console può caricare font fino a 512 (credo, o qualcosa del genere) diversi glifi; di solito solo 256 glifi tuttavia.

Visualizzare latino, cirrico o altre lingue che usano meno di 200 simboli non complessi non è un problema.

Tuttavia, per script complessi o script che richiedono molti simboli diversi (come il giapponese), non hai altra possibilità che utilizzare un layout aggiuntivo per gestirlo.

Nota che se il limite di 512 dovesse essere sufficiente per ASCII e per entrambi i set di Kana, c'è il problema della larghezza.

CJK e Kana si adattano a un quadrato, sono due volte più larghe delle lettere latine. Questo non è qualcosa che la console può gestire immediatamente.

Potresti ricorrere al vecchio e brutto "Halfwidth Katakana" (e forse anche trovare un vecchio font di una cosa del genere), o impostare la tua console su una larghezza di 40 colonne e avere lettere latine larghe come Kana.

Non conosco alcun tipo di carattere console con Kana; dovresti disegnare il tuo (ci sono strumenti per farlo, e puoi semplicemente copiare i punti del font giapponese bitmap.

Inoltre, potresti usare iconvper traslitterare kana in ASCII.


3

È necessario un carattere che contenga effettivamente questi caratteri. Arch Linux ad esempio consiglia Lat2-Terminus16.

Per provarlo, basta eseguire il seguente comando in una console virtuale: setfont Lat2-Terminus16.

Per il resto, la maggior parte delle distribuzioni moderne lo supportano già pronto all'uso.


2

Inoltre LANG/LC_ALL, stty iutf8è necessario dire al terminale cosa fare, potrebbe essere necessario setfontcaricare un font e una mappatura utili. Se hai ancora problemi controlla la configurazione del kernel per le CONFIG_NLS_xximpostazioni, potresti doverlo fare modprobe nls_utf8se non si carica automaticamente (penso che questo sia richiesto solo per i nomi di file Unicode).

Alcune distribuzioni di Linux forniscono unicode_starte unicode_stopscript per automatizzare questo.

Se lesscausa problemi, potrebbe LESSCHARSETessere necessario impostare la variabile di ambiente (o disinserirla se è errata).

Le FAQ UTF-8 e Unicode di Markus Kuhn per Unix / Linux sono preziose.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.