125 votes

Comment obtenir l'encodage des caractères du terminal ?

Maintenant j'ai changé l'encodage des caractères de mon terminal gnome en "GBK" (par défaut c'est UTF-8), mais comment puis-je obtenir la valeur (encodage des caractères) dans mon Linux ?

4 votes

4voto

Ashish Bhosle Points 409

Pour voir les informations sur la locale actuelle, utilisez locale commande. Voici un exemple sur RHEL 7.8

[usr@host ~]$ locale
LANG=en_US.UTF-8
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=

0voto

user1254127 Points 108

Examen de https://invisible-island.net/xterm/ctlseqs/ctlseqs.html la documentation sur les caractères de contrôle de xterm, montre qu'elle suit la norme ISO 2022 pour le changement de jeu de caractères. En particulier, ESC % G sélectionne UTF-8. Pour forcer le terminal à utiliser UTF-8, il faudrait donc envoyer cette commande. Je ne trouve aucun moyen de demander quel jeu de caractères est actuellement utilisé, mais il existe des moyens de savoir si le terminal prend en charge les jeux de caractères de remplacement nationaux.

Cependant, de charsets(7) Il semble que GBK (ou GB2312) ne soit pas un encodage supporté par l'ISO 2022 et que xterm ne le supporte pas en natif. Votre meilleure chance est donc d'utiliser iconv pour convertir en UTF-8.

Plus d'informations sur lecture montre qu'un sous-ensemble (significatif) de GBK est EUC, qui est un code ISO2022, de sorte que les terminaux compatibles ISO2022 pourraient être en mesure d'afficher le GBK en mode natif après tout, mais je ne trouve aucune mention de l'activation de ce programme, de sorte que l'interface utilisateur du terminal serait le seul recours.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X