Comment afficher Unicode dans un terminal virtuel Linux?

19

La lecture des données en Unicode ne s'affiche pas correctement dans le terminal Linux (c'est-à-dire le terminal virtuel qui s'ouvre sans X Windows).

J'ai lu dans une discussion ici que l'installation de programmes tels que JFBTERM , et cela fonctionne, alors je me demandais s'il n'y avait aucun moyen de configurer (consolefonts?) Le terminal pour gérer correctement unicode sans logiciel supplémentaire.

Sur les terminaux Windows (gnome-terminal, xterm, etc.), cela ressemble à ceci:

gnome-terminal

Sur un terminal virtuel, cela ressemble à ceci:

Vermont

Sur un terminal virtuel avec JFBTERM, cela ressemble à ceci:

jbfterm

Voici une capture d'écran de la sortie de locale:

lieu

Voici la sortie de showconsolefont:

showconsolefont

Est-ce que quelqu'un sait s'il est possible d'accomplir la même chose avec le terminal virtuel par défaut?

bruno.braga
la source

Réponses:

5

La police de la console peut charger des polices jusqu'à 512 (je pense, ou quelque chose comme ça) différents glyphes; habituellement seulement 256 glyphes cependant.

Pour afficher le latin, le cyrrilique ou d'autres langues utilisant moins de 200 symboles non complexes, aucun problème.

Cependant, pour les scripts complexes ou les scripts nécessitant beaucoup de symboles différents (comme le japonais), vous n'avez pas d'autre possibilité que d'utiliser une mise en page supplémentaire pour le gérer.

Notez que si la limite de 512 devrait être suffisante pour ASCII et les deux ensembles Kana, il y a le problème de la largeur.

CJK et Kana correspondent à un carré, ils font deux fois la largeur des lettres latines. Ce n'est pas quelque chose que la console peut gérer hors de la boîte.

Vous pouvez avoir recours à un vieux et laid "Halfwidth Katakana" (et peut-être même trouver une ancienne police de ce genre), ou régler votre console sur une largeur de 40 colonnes et avoir des lettres latines aussi larges que Kana.

Je ne connais pas une telle police de console avec Kana; vous devez dessiner le vôtre (il existe des outils pour le faire, et vous pouvez simplement copier les points de la police japonaise bitmap.

En outre, vous pouvez utiliser iconvpour translittérer kana en ASCII.

Pablo Saratxaga
la source
3

Vous avez besoin d'une police qui a réellement ces caractères. Arch Linux par exemple recommande Lat2-Terminus16.

Pour l' essayer, entrez simplement la commande suivante dans une console virtuelle: setfont Lat2-Terminus16.

Pour le reste, la plupart des distributions modernes le prennent déjà en charge.

Daniel B
la source
2

En plus de LANG/LC_ALL, stty iutf8est nécessaire pour dire au terminal quoi faire, vous devrez peut-être setfontalors charger une police et un mappage utiles. Si vous avez encore des problèmes, vérifiez la configuration de votre noyau pour les CONFIG_NLS_xxparamètres, vous devrez peut-être modprobe nls_utf8si elle ne se charge pas automatiquement (je pense que cela n'est requis que pour les noms de fichiers Unicode).

Certaines distributions de Linux fournissent unicode_startet des unicode_stopscripts pour automatiser cela.

Si cela lesscause des problèmes, il peut LESSCHARSETêtre nécessaire de définir la variable d'environnement (ou de la désactiver si elle est incorrecte).

La FAQ UTF-8 et Unicode de Markus Kuhn pour Unix / Linux est inestimable.

Mr Spuratic
la source