Я использую st, простой терминал или suckless-терминал, который является терминалом с поддержкой Unicode.
У меня есть две машины, обе работают под управлением Arch Linux с в основном одинаковыми настройками системы, но я получаю поддержку Unicode только на старой машине!
После некоторого расследования я думаю, что это как-то связано с моими местами, но я не совсем уверен.
но я вообще не помню настройки 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передал вывод команды -com в файл журнала, и я могу загрузить этот файл куда-нибудь, но я не знаю, как это сделать правильно, так как у меня пока не было причин делать это.
2 ответа на вопрос
0
egmont
"Может ли это быть проблемой?" - Да.
Большинство приложений взять кодировку из LC_ALL, LC_CTYPEили LANG, того первого, которое не пусто в этом списке. Разрешенное значение также отображается как locale charmap. Насколько я понимаю, вы LC_CTYPE=Cне уверены в своих LC_ALL. Они должны содержать язык UTF-8, а не C.
«Как получается, локали на моей старой системе установлены» - вопрос должен быть: почему они не установлены на вашей новой системе? К сожалению, я не могу ответить на это, но они должны быть установлены.
Спасибо, это направило меня в правильном направлении, я думаю. См редактировать на оригинальный вопрос
Tim Hilt 6 лет назад
0
0
Tim Hilt
Поэтому, открыв тему в Archlinux-Forum, кто-то указал, что я могу установить LC_ALL=Cфайл в моем домашнем каталоге. После запуска grep -rnw '/home/' -e 'LC_.*=C'я обнаружил, что в моем .bashrc была строка, говорящая
export LC_ALL=C
который я удалил. После перезагрузки запуск localeдал мне en_DE.UTF-8большинство моих локалей, что еще более запутанно. Но после того, как я посмотрел в своих региональных настройках (используя KDE в качестве рабочего стола), я обнаружил, что мои настройки «Формат» были установлены на en_DE. Удалил, что тоже, перезагрузил, теперь все работает как положено.