Fehlende Teile des utf-8-Zeichensatzes in urxvt mit VcXsrv

0

Ich verwende einen Arch Linux-Server, zu dem ich von einigen Windows-Computern mit VcXsrv eine Verbindung herstelle, sodass ich grafische Anwendungen ausführen kann (und mehr angepasste Terminals, als ich mit PuTTY usw. bekommen kann). Ich habe jedoch Probleme mit urxvt- und UTF-8-Zeichen aus dem UTF-8-Dingbats-Abschnitt, dh sie werden nicht gerendert. Ich verwende Dingbats, um den Git-Status in meiner Shell-Eingabeaufforderung anzuzeigen und auch den Exit-Status von Befehlen anzuzeigen.

locale.conf:

LANG=en_US.UTF-8

Gebietsschema-Ausgabe:

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Urxvt-Konfiguration (~ / .Xdefaults):

URxvt*scrollTtyOutput: false
URxvt*scrollWithBuffer: true
URxvt*scrollTtyKeypress: true
URxvt*scrollBar: false
URxvt*cursorBlink: true
URxvt*background: black
URxvt*foreground: green
URxvt*font: xft:Hack:size=10, xft:Unifont:size=10
URxvt*locale: true
URxvt*skipBuiltinGlyphs: true
URxvt*xftAntialias: true
URxvt*saveLines: 10000
URxvt*eightBitInput: false

urxvt-Versionsinformationen:

rxvt-unicode (urxvt) v9.22 - released: 2016-01-23
options: perl,xft,styles,combining,blink,iso14755,unicode3,encodings=eu+vn+jp+jp-ext+kr+zh+zh-ext,
         fade,transparent,tint,XIM,frills,selectionscrolling,wheel,slipwheel,cursorBlink,
         pointerBlank,scrollbars=plain+rxvt+NeXT+xterm

Ich kann alle lateinischen, Katakana, Hiragana, Hangul, Chinesisch (traditionell, vereinfacht), kyrillisch, persisch (meist), georgische Schriftzeichen usw. sehen. Aber Dingbats sehen so aus, wenn ich sie ausdrucken:

Dingbats not rendering

Ich verwende zsh im vim-mode, wenn es darauf ankommt.
Bei Google ist der einzige Rat, den ich finden kann, sicherzustellen, dass das Gebietsschema auf UTF-8 eingestellt ist und die Schriftarten die erforderlichen Glyphen aufweisen. Beides, glaube ich, habe ich sichergestellt.

Wo konnte ich falsch liegen?

Warepire
quelle
Beachten Sie, dass die Schriftarten verfügbar sein müssen auf dem Client nicht auf dem Server (es sei denn, Sie betreiben ein Terminal vom Server mit X-Server-Umleitung.)
Paul Stelian
Anschließen mit ssh -X mit PuTTY. Ich habe die Schriftarten auf meinem Arch-Computer installiert, dann kopiert und an den richtigen Stellen der VcXsrv-Installationen platziert. Vielleicht war das nicht der richtige Weg?
Warepire
Der Ort, an dem PuTTY ausgeführt wird, muss über die Schriftarten verfügen (dh die Windows-Konsole). Und das ist normalerweise nicht der Fall. Du kannst rennen gnome-terminal durch ssh -X allerdings, und das sollte korrekt dargestellt werden, mit den Server-Schriftarten (ich verwende eigentlich eine solche Konfiguration!)
Paul Stelian
@ Paul Stelian Das Problem liegt bei meinen urxvt-Terminals, die das PuTTY-Terminal wie erwartet rendert. In der PuTTY-Sitzung zeige ich die urxvt-Terminals, und diese werden nicht korrekt gerendert. Es tut mir leid, wenn mir das nicht klar war. (Ich wollte nur zeigen, wie ich X in meinem vorherigen Kommentar weitergeleitet habe.)
Warepire
Ich glaube, dass urxvt nicht alle Schriften berücksichtigt. Wissen Sie, wie Sie die verwendete Schriftart ändern können? (Dies geschieht jedoch nicht automatisch, das ist sicher.) Stellen Sie außerdem sicher, dass die gewählte Schriftart diese Zeichen enthält (möglicherweise eine Noto Mono oder eine ähnliche Schriftart?).
Paul Stelian

Antworten:

0

Das Problem entsteht durch die Verwendung von Zeichen, die sich in der Private Use-Ebene von Unicode befinden, wobei dies nicht garantiert ist. Windows XP-Systeme könnten die Schriften dort explizit mit bearbeiten eudcedit Befehl, Macs haben ein Apple-Logo in einem der 6400 Zeichen in dieser Ebene, und Sie verwenden einfach die falschen Dingbats.

Die korrekten Dingbats sind von 9985 bis 10175 Dezimalzahlen (2701 bis 27bf hex).

Paul Stelian
quelle
1
Das war ein wirklich dummer Fehler in meinem Test, aber es konnte mein Problem nicht zu 100% lösen. Ergebnisse mit Noto Mono und Unifont (in dieser Reihenfolge): Imgur: Ergebnisse
Warepire
Hmm, jetzt wird das Problem interessant ...
Paul Stelian
Auf meiner Windows-Konsole funktionierten nur 3 Schriftarten: NSimSun, MS Gothic, SimSun-ExtB
Paul Stelian
1
Wäre es nicht an meinem X-Server (VcXsrv), die Schriftarten durchzugeben? Da ist es eine urxvt-Konsole.
Warepire
2
Sie haben mich dort auf den richtigen Weg gebracht. Ich fing an, tiefer in meinem X-Server (VcXsrv) nach Code und Protokoll zu suchen, und es gelang mir, diese Zeile während des Startvorgangs herauszuholen: Warning: Locale not supported by X, falling back to 'C' locale..
Warepire