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ürxfce
. Wenn Sie beispielsweise gestartet werden,.xinitrc
versuchen Sie, das Gebietsschema festzulegen, bevor Sie wie ausgeführt werdenLANG=ru_RU.utf8 exec startxfce4
.Antworten:
Ich bin mir nicht ganz sicher, woran das Problem liegt, aber die folgenden Schritte könnten Abhilfe schaffen:
Vergewissern Sie sich, dass das Gebietsschema ordnungsgemäß eingerichtet ist
Aktivieren Sie die gewünschten Locales in /etc/locale.gen und führen Sie sie aus
locale-gen
Stellen Sie sicher, dass die gewünschte Schriftart geladen werden kann
quelle
URxvt.letterSpace: -10
und alle Zeichen werden als KästchenFür mich war es ein Problem mit Powerline-Glyphen in urxvt.
localectl set-locale LANG=en_AU.UTF-8
Ich habe gerade herausgefunden, dass das Setzen des Gebietsschemas mit das Problem für mich behebt, zumindest mit der Terminess Powerline-Schriftart (habe noch keine anderen Schriftarten ausprobiert).Es hat nicht funktioniert
en_US.UTF-8
, da bin ich mir ziemlich sicher, dass ich es reproduzieren kann ... das ist seltsam ... aber es funktioniert jetzt.Quelle
quelle