web-dev-qa-db-fra.com

Comment afficher Unicode dans un terminal virtuel Linux?

La lecture de toutes les données au format 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 ça marche, alors je me demandais s'il n'y avait pas 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 le terminal virtuel, cela ressemble à ceci:

vt

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

jbfterm

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

locale

Voici le résultat 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?

18
bruno.braga

La police de la console peut charger jusqu'à 512 polices différentes (je pense, ou quelque chose du genre) différents glyphes; généralement, cependant, seulement 256 glyphes.

Afficher le latin, le cyrrilique ou d’autres langues utilisant moins de 200 symboles non complexes n’est pas un 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 de Kana, le problème de la largeur se pose.

CJK et Kana forment un carré, ils ont 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 à l'ancien et moche "Halfwidth Katakana" (et peut-être même en trouver une vieille police), ou configurer votre console sur une largeur de 40 colonnes et avoir des lettres latines aussi larges que Kana.

Je ne connais aucune police de ce type avec Kana; vous devriez dessiner les vôtres (il existe des outils pour le faire, et vous pouvez simplement copier les points de la police bitmap japanese.

Vous pouvez également utiliser iconv pour translittérer le kana en ASCII.

5
Pablo Saratxaga

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

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

Pour le reste, la plupart des distributions modernes le supportent déjà.

3
Daniel B

En plus de LANG/LC_ALL, stty iutf8 est nécessaire pour indiquer au terminal quoi faire, vous aurez peut-être besoin de setfontpour charger une police et un mappage utiles. Si vous rencontrez toujours des problèmes, vérifiez la configuration de votre noyau pour les paramètres CONFIG_NLS_xx; vous devrez peut-être modprobe nls_utf8 s'il ne se charge pas automatiquement (je pense cependant que cela n'est nécessaire que pour les noms de fichiers Unicode).

Certaines distributions linux fournissent des scripts unicode_start et unicode_stop pour automatiser cette opération.

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

Markus Kuhn TF-8 et Unicode FAQ pour Unix/Linux est inestimable.

1
mr.spuratic