Фон:
- У меня есть несколько символов Юникода в моем приглашении (по сути, маркеры состояния git)
- Я запускаю urxvt под Xfce на Arch Linux.
Я использую шрифт DejaVu Sans Mono для Powerline, указанный в строке .Xresources:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
Когда я запускаю urxvt, символы юникода не отображаются правильно.
Например
● отображается как â
Однако, если я тогда запускаю новый urxvt
изнутри первого терминала, все отрисовывается правильно.
Там, кажется, нет никакой разницы в окружающей среде между двумя терминалами.
В чем может быть разница между первым вызовом и вложенным вызовом? Я подозреваю, что шрифт неправильный в «внешнем» экземпляре, но я не уверен, как проверить шрифт запущенного окна X
ОБНОВЛЕНИЕ : Кажется, что языковой стандарт неправильно настроен в панели запуска приложения для xfce4, но, вероятно, оболочка внутри первого терминала содержит собственную локаль, то есть обе оболочки имеют одинаковую локаль.
добавление
export LANG=en_GB.UTF-8
в .xinitrc до запуска xfce4, кажется, это исправить. Я подозреваю, что это не правильный путь, но он работает достаточно хорошо для меня.
скриншот демонстрирует проблему:
Примечание: я перенес этот вопрос с serverfault.com - надеюсь, этот сайт более уместен
LC_ALL=ru_RU.utf8 urxvt
из текущей X сессии. Если русские (и другие Unicode) символы стали правильными, значит, ваша среда работала под языком C. Так что проверьте настройки локали для xfce
. Например, если вы запустили его, .xinitrc
попробуйте установить локаль перед запуском, как LANG=ru_RU.utf8 exec startxfce4
.