我不明白为什么rxvt-unicode
有些 Unicode 字符无法正确显示,例如☁
或,☂
而⚡
可以正确显示。这些符号被一个小框替换,如屏幕截图所示:
这是我的语言环境:
LANG=en_US.UTF-8
LANGUAGE=en_US:en
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=
这是我的.Xresources
:
URxvt.font: xft:Ubuntu Mono:size=11:antialias=true:hinting=true
URxvt.letterSpace: -2
URxvt.lineSpace: -2
URxvt.scrollKey: true
URxvt.depth: 32
URxvt.loginShell: true
URxvt.geometry: 100x30
URxvt.saveLines: 10000
URxvt.cutchars: "`\"'&()*,:;<=>?[\\]^{|}$"
URxvt.scrollBar: false
URxvt.visualBell: true ```
这些符号在 中显示正确gnome-terminal
。来自 google 的建议与 ubuntu 无关,它们都建议将 .utf-8 添加到语言环境,而我的设置中已经添加了该语言环境。如果您能以任何方式帮助我,那就太好了,这个问题真的让我很烦!
答案1
由于缺乏色彩对比,该屏幕截图几乎无法阅读,但问题的原因似乎只是所使用的字体不包含字符 ☁ 或 ☂ 的字形。小方框通常是程序指示已识别但因缺少字形而无法显示的字符的方式。
这个解释听起来有问题,因为xrvt 常见问题解答说:“当 rxvt-unicode 看到一个字符时,它会首先查看基本字体。如果基本字体不包含该字符,它将转到下一个字体,依此类推。”因此,如果任何可用字体包含该字形,它应该会找到该字形。但据推测这个过程出错了,例如因为某些字体中的字符库信息有误(字体可能会说它支持某个字符,但缺少该字符的字形)。使用不同的基本字体设置进行测试可能有助于识别问题。