是否有一个调试指南可以解决 Ubuntu 22.04 上的终端 Tilix 或 Guake 中不显示的表情符号

是否有一个调试指南可以解决 Ubuntu 22.04 上的终端 Tilix 或 Guake 中不显示的表情符号

令人沮丧的是,我无法在最新的 Ubuntu 22.04 上的任何终端中正确呈现表情符号。我让它们在浏览器(完全符合预期)、LibreOffice 甚至 Emacs shell 中工作,但在我的任何终端中都无法工作。我检查了语言环境(en_GB.UTF-8)、fc-list“MesloLGS NF Regular”(或任何其他使用 apt 安装的表情符号友好字体,如 fonts-noto-color-emoji 或 fonts-emojione),它们都检查无误。我重建了 fc-cache。

如果我在 emacs 中运行 shell 并在终端窗口中运行相同的命令,我会得到相同的答案,直到我尝试 cat 我的测试文件。在 Emacs shell 中我得到

Hello World 

答案1

是否显示字形取决于您使用的字体是否支持它。如果您切换到支持表情符号的字体,它应该可以正常工作。您在问题中提到了 Noto,所以试试看。打开gnome-terminal,转到首选项 ->“自定义字体”,然后选择 Noto 或类似 Ubuntu Mono 的字体:

gnome 终端偏好设置的屏幕截图,其中显示所选字体为 Ubuntu Mono

这应该可以让你看到表情符号:

带有可用表情符号的 gnome 终端的屏幕截图

答案2

TLDR;您的字体文件可能位于多个系统字体文件夹中。请删除这些文件夹并尝试fonts-noto-color-emoji重新安装。

我遇到了同样的问题,即使在我fonts-noto-color-emoji按照建议安装后这里和其他各种论坛)我的系统无法在终端、gedit、表情符号(表情符号选择器)等上呈现表情符号。

我偶然发现。然后当我$ fc-cache -f -v在终端上运行时,我发现我有多个包含相同字体文件的文件夹。我只是手动删除了它们并执行了过程再次。

答案3

这是@dirtbkr 答案的更详细版本,对于评论或编辑来说太多了,但可以添加更多提示:

结论:您可能有重复的字体文件。使用此命令来找到它们:

find /usr/share/fonts/truetype -name Noto\*

如果您手动安装了字体,您可能已经在这个列表中认出了它们。删除重复项。您应该保留列表中的字体/usr/share/fonts/truetype/noto- 这些应该是从包中安装的字体fonts-noto-color-emoji

如果这没有帮助,请继续阅读下面的长答案。

然后运行fc-cache -f -v

任何正在运行的进程可能仍会使用旧文件,因此请重新启动用于测试的程序(例如 Libre Office)。对于某些程序,您可能需要注销并重新登录(例如 Gnome 终端)。

较长的答案:

我用过这个脚本安装所有Google 字体事实证明,使用安装脚本而不是官方软件包存储库可能会造成破坏,即使只是字体文件。

就我而言,我只是删除了所有匹配的 Google 字体Noto*

以下命令列出全局字体目录中所有具有重复文件名的文件:

find /usr/share/fonts/ -type f -exec basename {} \; | sort | uniq -d

用于fc-list : file查找其他字体目录 - 您可能需要扩大搜索范围。

为什么?

我搞不懂。我尝试删除软件包fonts-noto-color-emoji、、fonts-noto-corefonts-noto-cjk之后,没有安装其他字体/usr/share/fonts/truetype/noto。所以我想我可以使用全部Google 字体并从那里使用表情符号。但是,这不起作用 - 在这种情况下没有显示表情符号。

也可以看看

答案4

字体文件夹中有“重复”文件会导致表情符号显示为空白。就我而言,我的文件夹中有NotoEmojiColor-Regular.ttf和。只需删除其中一个文件即可解决问题。NotoEmojiColor.ttf/usr/share/fonts/truetype/noto/

相关内容