背景:
- 我的提示符中有一些unicode字符(基本上是git status标记)
- 我在arch linux上运行xfce下的urxvt。
我正在使用DejaVu Sans Mono for Powerline字体,通过.Xresources行指定:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
当我启动urxvt时,unicode字符无法正确呈现。
例如
●渲染为â
但是,如果我然后urxvt
从第一个终端内部开始一个新的一切正确呈现。
两个终端之间的环境似乎没有任何差异。
第一次调用和嵌套调用之间可能有什么区别?我怀疑'外部'实例中的字体不正确,但我不确定如何检查正在运行的X窗口的字体
更新:似乎没有在xfce4的应用程序启动器中正确设置语言环境,但可能是第一个终端内的shell进入它自己的语言环境,这意味着两个shell都具有相同的语言环境。
加入
export LANG=en_GB.UTF-8
在xfce4启动之前到.xinitrc似乎解决了它。我怀疑这不是正确的方法,但对我来说效果还不错。
截图演示了问题:
注意:我从serverfault.com移动了这个问题 - 我希望这个网站更合适
你是如何开始X的?你如何开始“第一个”终端?这两者的环境似乎不同。
—
ЯрославРахматуллин11年
尝试
—
Alexander I.Grafov
LC_ALL=ru_RU.utf8 urxvt
从当前的X会话运行。如果俄语(和其他Unicode)字符变得正确,则以防万一您的环境在C语言环境下运行。因此,请检查区域设置xfce
。例如,如果您在启动它时.xinitrc
尝试在运行之前设置语言环境LANG=ru_RU.utf8 exec startxfce4
。