web-dev-qa-db-fra.com

Comment puis-je activer la prise en charge UTF-8 dans la console Linux?

À l'heure actuelle, cela ressemble à ceci:

enter image description here

12
Mihai

Bien sûr (le nombre de glyphes est limité, mais il semble que vos paramètres régionaux utilisent le codage UTF-8).

J'utilise ceci pour tester:

#!/bin/sh
# send character-string to enable UTF-8 mode
if test ".$1" = ".off" ; then
    printf '\033%%@'
else
    printf '\033%%G'
fi

et (en l'appelant "utf8"), "utf8 on" active l'encodage.

En utilisant l'exemple donné avec pstree, voici un exemple après l'exécution du script (avant, le même type de sortie que dans la question ):

screenshot after "utf8 on"

Comme indiqué dans un commentaire, il existe un script unicode_start qui fait plus , mais tout ce qui est nécessaire pour répondre à la question posée est le petit script utilisé comme exemple.

Répondre à un commentaire différent: au moins sur mon système (et dans la capture d'écran illustrée dans la question), tous les caractères utilisés par pstree sont fournis dans la police de 512 glyphes utilisée par défaut pour la prise en charge Unicode sous Linux console.

Lectures complémentaires:

6
Thomas Dickey

Vérifiez que le package locales est installé

dpkg -l locales

Sinon, installez-le

apt-get install locales

En tant que root, tapez

dpkg-reconfigure locales

vous pouvez parcourir cette liste avec les touches fléchées haut/bas, par exemple, choisissez en_US-UTF-8

modifiez votre .bashrc en ajoutant les lignes suivantes:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

Exécutez la commande locale, la sortie devrait être similaire à ceci ::

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
13
GAD3R

Ensemble CHARMAP=UTF8 dans /etc/default/console-setup .

Courir systemctl daemon-reload && systemctl restart console-setup.service ensuite.

2
alecov