Contexte:
- J'ai des caractères Unicode dans mon invite (marqueurs d'état git essentiellement)
- J'utilise urxvt sous xfce sur arch linux.
J'utilise DejaVu Sans Mono pour la police Powerline, spécifiée via la ligne .Xresources:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
Lorsque je démarre urxvt, les caractères unicode ne s'affichent pas correctement.
Par exemple
● s'affiche comme â
Cependant, si je démarre ensuite un nouveau urxvt
depuis l'intérieur du premier terminal, tout s'affiche correctement.
Il ne semble pas y avoir de différence dans l'environnement entre les deux terminaux.
Quelle pourrait être la différence entre la première invocation et l'invocation imbriquée? Je soupçonne que la police n'est pas correcte dans l'instance «externe», mais je ne sais pas comment vérifier la police d'une fenêtre X en cours d'exécution
MISE À JOUR : Il semble que les paramètres régionaux ne soient pas correctement configurés dans le lanceur d'applications pour xfce4, mais il est probable que le shell à l'intérieur du premier terminal ait ses propres paramètres régionaux, ce qui signifie que les deux shells ont les mêmes paramètres régionaux.
ajouter
export LANG=en_GB.UTF-8
à .xinitrc avant le démarrage de xfce4 semble le corriger. Je soupçonne que ce n'est pas la bonne façon, mais cela fonctionne assez bien pour moi.
La capture d'écran montre le problème:
Remarque: j'ai déplacé cette question de serverfault.com - j'espère que ce site est plus approprié
LC_ALL=ru_RU.utf8 urxvt
partir de la session X actuelle. Si les caractères russes (et autres Unicode) sont devenus corrects, vous êtes dans le cas où votre environnement a été exécuté sous l'environnement local C. Vérifiez donc les paramètres régionaux pour xfce
. Par exemple, si vous le démarrez, .xinitrc
essayez de définir les paramètres régionaux avant de l'exécuter comme LANG=ru_RU.utf8 exec startxfce4
.