web-dev-qa-db-fra.com

Pourquoi mon terminal n'émet-il pas correctement les caractères Unicode?

Par exemple, mon terminal fait ceci:

$ echo -e "\xE2\x98\xA0"
���

Je m'attends à ce qu'il fasse ceci:

$ echo -e "\xE2\x98\xA0"
☠

Pourquoi? Comment faire en sorte que mon terminal génère les symboles Unicode appropriés?

J'utilise le terminal de Gnome 3 sur Arch Linux.

La sortie de locale montre:

LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
44
trusktr

Je l'ai compris. Je devais m'assurer de régler LANGUAGE="en_US.UTF-8" dans /etc/rc.conf et LANG="en_US.UTF-8" dans /etc/locale.conf, puis déconnecté et reconnecté et cela a fonctionné. Mon terminal affiche unicode correctement maintenant.

12
trusktr

Si vous ne pouvez pas modifier les fichiers /etc/*, Vous pouvez définir manuellement le menu gnome-terminalTerminal | Set Character Encoding Sur Unicode(Utf-8)

11
Nimlar

J'ai mis à jour mes paramètres régionaux avec la commande suivante:

Sudo update-locale LANG=en_US.UTF-8 LANGUAGE=en.UTF-8

puis redémarré:

Sudo reboot
6
Ben