Я использую st, простой терминал или suckless-терминал, который является терминалом с поддержкой Unicode.
У меня есть две машины, обе работают под управлением Arch Linux с в основном одинаковыми настройками системы, но я получаю поддержку Unicode только на старой машине!
После некоторого расследования я думаю, что это как-то связано с моими местами, но я не совсем уверен.
locale дает:
[tim@x1carbon: ~]$ locale
LANG=en_DE.UTF-8
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=C
Насколько я понимаю, это означает, что все, что написано в "..." , задано неявно, поэтому единственными явно заданными локалями будут LANG и LC_ALL .
Я установил LANG=de_DE.UTF-8 в /etc/locale.conf .
[tim@x1carbon: ~]$ cat /etc/locale.conf
LANG=de_DE.UTF-8
LC_COLLATE=C
LANGUAGE=en_US.UTF-8
но я не помню, чтобы вообще был установлен LC_ALL (на моей старой машине эта переменная просто пуста, когда я запускаю locale)!
Я запустил sudo grep -rnw '/usr/' -e 'LC_.*=C' (шаблон поиска, который просматривает каждый файл в /usr/ -directory), который выводит много скриптов и файлов, содержащих LC_ALL=C , но в большинстве случаев я предполагаю, что существующие программы просто читали мой набор LC_ALL -variable и добавление соответствующих переменных в их сценарии.
Я не могу найти, где я на самом деле установил эту переменную, и я могу ошибаться со своим пониманием, что это является причиной ложного рендеринга, но все же: установка LC_ALL в ложный языковой стандарт может вызвать много других проблем, я думаю.
Кроме того, localectl status выдает:
[tim@x1carbon: ~]$ localectl status
System Locale: LANG=de_DE.UTF-8
LANGUAGE=en_US.UTF-8
LC_COLLATE=C
VC Keymap: de-latin1
X11 Layout: n/a
... который такой же выходной, как на рабочей машине.
Я передал вывод команды grep в файл журнала, и я могу загрузить этот файл куда-нибудь, но я не знаю, как это сделать правильно, поскольку у меня пока не было причин делать это.
