Tło:
- Mam kilka znaków Unicode w moim monicie (zasadniczo znaczniki statusu git)
- Uruchamiam Urxvt pod XFCE na Arch Linux.
Używam DejaVu Sans Mono dla czcionki Powerline, określonej za pomocą wiersza .Xresources:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
Kiedy uruchamiam urxvt, znaki Unicode nie renderują się poprawnie.
Na przykład
● renderuje jako â
Jeśli jednak zacznę nowy urxvt
od wewnątrz pierwszego terminala, wszystko będzie renderowane poprawnie.
Wydaje się, że nie ma żadnej różnicy w środowisku między dwoma terminalami.
Jaka może być różnica między pierwszym wywołaniem a wywołaniem zagnieżdżonym? Podejrzewam, że czcionka jest niepoprawna w wystąpieniu „zewnętrznym”, ale nie jestem pewien, jak sprawdzić czcionkę działającego okna X
AKTUALIZACJA : Wygląda na to, że ustawienia regionalne nie są poprawnie skonfigurowane w programie uruchamiającym aplikacje dla xfce4, ale przypuszczalnie powłoka wewnątrz pierwszego terminala wprowadza własne ustawienia regionalne, co oznacza, że obie powłoki mają takie same ustawienia regionalne.
dodawanie
export LANG=en_GB.UTF-8
na .xinitrc przed uruchomieniem xfce4 wydaje się to naprawić. Podejrzewam, że to nie jest właściwy sposób, ale działa dla mnie wystarczająco dobrze.
zrzut ekranu pokazuje problem:
Uwaga: przeniosłem to pytanie z serverfault.com - mam nadzieję, że ta strona jest bardziej odpowiednia
LC_ALL=ru_RU.utf8 urxvt
z bieżącej sesji X. Jeśli rosyjskie znaki (i inne znaki Unicode) są poprawne, oznacza to, że twoje środowisko działało w ustawieniach regionalnych C. Sprawdź ustawienia regionalne dla xfce
. Na przykład, jeśli zostałeś uruchomiony, .xinitrc
spróbuj ustawić ustawienia regionalne przed uruchomieniem jak LANG=ru_RU.utf8 exec startxfce4
.