Фон:
- У меня есть несколько символов Юникода в моем приглашении (по сути, маркеры состояния 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
.Ответы:
Я не совсем уверен, в чем причина проблемы, но могут помочь следующие шаги:
Убедитесь, что локаль настроена правильно
Включите нужные локали в /etc/locale.gen и запустите
locale-gen
Убедитесь, что нужный шрифт может быть загружен
источник
URxvt.letterSpace: -10
и все символы отображаются в виде блоковДля меня это была проблема с символами Powerline в urxvt. Только что обнаружил, что установка локали с помощью
localectl set-locale LANG=en_AU.UTF-8
исправляет проблему для меня, по крайней мере, со шрифтом terminess powerline (не пробовал другие шрифты)Это не сработало
en_US.UTF-8
, я уверен, потому что я могу воспроизвести это ... теперь это странно ... но это работает сейчас.источник
источник