web-dev-qa-db-fra.com

Comment obtenir le codage de caractères du terminal

Maintenant, je change le codage de caractères de mon gnome-terminal en "GBK" (par défaut, il s’agit de UTF-8), mais comment puis-je obtenir la valeur (codage de caractères) dans mon Linux?

106
Liang Wul

Le terminal utilise variables d'environnement pour déterminer quel jeu de caractères utiliser, vous pouvez donc le déterminer en consultant ces variables:

echo $LC_CTYPE

ou

echo $LANG
98
Valdis

La commande locale sans argument affichera les valeurs de toutes les variables d'environnement pertinentes, à l'exception de LANGUE.

Pour l'encodage actuel:

locale charmap

Pour les lieux disponibles:

locale -a

Pour les encodages disponibles:

locale -m
86
nyzm

Vérifier l'encodage et la langue:

$ echo $LC_CTYPE
ISO-8859-1
$ echo $LANG
pt_BR

Obtenez toutes les langues:

$ locale -a

Passez à pt_PT.utf8:

$ export LC_ALL=pt_PT.utf8 
$ export LANG="$LC_ALL"
43
Moreno

Si vous avez Python:

python -c "import sys; print(sys.stdout.encoding)"
11
Martin Thoma

À ma connaissance, non.

Des indications indirectes provenant de $LC_CTYPE, locale et autres peuvent sembler attrayantes, mais elles sont complètement séparées du codage de l'application de terminal (en fait, un émulateur) est utilisé lors de l'affichage de caractères à l'écran.

Le seul moyen de détecter l’encodage consiste à sortir quelque chose que cet encodage, par ex. ä, faites une capture d'écran, analysez cette image et vérifiez si le caractère de sortie est correct.

Donc non, ce n'est pas possible, malheureusement.

6
pythonator