Hintergrund:
- Ich habe einige Unicode-Zeichen in meiner Eingabeaufforderung (im Wesentlichen Git-Statusmarkierungen)
- Ich lasse urxvt unter xfce auf Arch Linux laufen.
Ich verwende die DejaVu Sans Mono für Powerline-Schrift, die über die .Xresources-Zeile angegeben wird:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
Wenn ich urxvt starte, werden die Unicode-Zeichen nicht richtig gerendert.
Beispielsweise
● Rendert als â
Wenn ich dann aber urxvt
im ersten Terminal ein neues starte, wird alles korrekt gerendert.
Es scheint keinen Unterschied in der Umgebung zwischen den beiden Terminals zu geben.
Was könnte der Unterschied zwischen dem ersten Aufruf und dem verschachtelten Aufruf sein? Ich vermute, dass die Schriftart in der "äußeren" Instanz nicht korrekt ist, bin mir aber nicht sicher, wie ich die Schriftart eines laufenden X-Fensters überprüfen soll
UPDATE : Es scheint, dass das Gebietsschema im App-Launcher für xfce4 nicht korrekt eingerichtet ist, aber vermutlich befindet sich die Shell im ersten Terminal in ihrem eigenen Gebietsschema, was bedeutet, dass beide Shells dasselbe Gebietsschema haben.
Hinzufügen
export LANG=en_GB.UTF-8
zu .xinitrc, bevor xfce4 gestartet wird, scheint es zu beheben. Ich vermute, dass dies nicht der richtige Weg ist, aber es funktioniert gut genug für mich.
Screenshot zeigt das Problem:
Hinweis: Ich habe diese Frage von serverfault.com verschoben. Ich hoffe, diese Website ist geeigneter
LC_ALL=ru_RU.utf8 urxvt
von der aktuellen X-Sitzung aus zu starten . Wenn die russischen Zeichen (und andere Unicode-Zeichen) korrekt sind, können Sie feststellen, dass Ihre Umgebung unter der Ländereinstellung C ausgeführt wurde. Überprüfen Sie daher die Ländereinstellungen für xfce
. Wenn Sie beispielsweise gestartet werden, .xinitrc
versuchen Sie, das Gebietsschema festzulegen, bevor Sie wie ausgeführt werden LANG=ru_RU.utf8 exec startxfce4
.