it-swarm-ru.tech

Почему мой терминал не выводит символы Юникода должным образом?

Например, мой терминал делает это:

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

Я ожидаю, что это сделать это:

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

Зачем? Как сделать так, чтобы мой терминал выводил правильные символы Unicode?

Я использую терминал Gnome 3 на Arch Linux.

Вывод locale показывает:

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

Я понял. Я должен был убедиться, что я установил LANGUAGE="en_US.UTF-8" в /etc/rc.conf а также LANG="en_US.UTF-8" в /etc/locale.conf, затем вышли из системы и снова вошли в систему, и это сработало. Мой терминал теперь правильно отображает юникод.

12
trusktr

Если вы не можете изменить файлы /etc/*, Вы можете вручную установить для меню gnome-terminalTerminal | Set Character Encoding Значение Unicode(Utf-8)

11
Nimlar

Я обновил свой язык с помощью следующей команды:

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

затем перезагрузился:

Sudo reboot
6
Ben