我安装了几个终端,但只有其中的一些能够正确显示所有Unicode字符。例如,不同的终端会以不同的方式显示经典Emoji符号:Xterm Urxvt(又名rxvt-unicode) Terminology 如您所见,Terminology(还有gnome-terminal或st,它们在此处没有显示)可以正确显示Emoji符号,而urxvt和xterm则无法正确显示字符,而显示矩形。为什么会这样呢?所有终端的locale都相同。字体显然已正确安装。xterm和rxvt-unicode应该支持Unicode(至少捷克语字符如ěščř可以毫无问题地显示),但是它们显然并没有完全支持。
我来回答吧 :-) 有一种叫做“备用字体”的东西。当你的主字体集中没有特定的字形时,就会使用这些字体。只有一些终端支持备用字体。请参见本文第一段 https://www.uninformativ.de/blog/postings/2015-10-04/0/POSTING-en.html,还可以在这里了解如何通过fontconfig设置备用字体:http://www.omgubuntu.co.uk/2016/03/enable-color-emoji-linux-svg-font。