Ubuntu 22.04下Tilix/Guake等终端无法显示emoji的排查指南请求及问题详述
Ubuntu 22.04下Tilix/Guake等终端无法显示emoji的排查指南请求及问题详述
真的快搞疯了!我在完全更新的Ubuntu 22.04上,所有终端都没法正常渲染emoji,但浏览器(这倒是意料之中)、LibreOffice甚至Emacs里的shell都能正常显示emoji,唯独终端不行。
我已经做了这些排查:
- 检查了locale,是
en_GB.UTF-8,确认正常 - 用
fc-list "MesloLGS NF Regular"以及其他通过apt安装的支持emoji的字体(比如fonts-noto-color-emoji、fonts-emojione)都能查到,字体确实已安装 - 重建过
fc-cache字体缓存
我做了个对比测试:在Emacs的shell和终端窗口(试过Tilix、Guake、GNOME Terminal 3.44.0)里运行相同的命令,结果都一致,直到cat我的测试文件时出现差异:
Emacs shell里显示:
Hello World
终端里显示:
Hello World
其实emoji字符是存在的,只是在终端里显示成了空白(我知道这点是因为把它复制到浏览器里能正常显示,为了演示我特意把它去掉了)。
按照建议,我运行了od -c emoji_test.txt,输出是:
0000000 H e l l o W o r l d 360 237 230 204 0000020 \n
测试用的emoji十六进制码应该是😄,1F604转成八进制是373004,这部分我确认是正确的。
而且不管用什么shell(zsh、bash甚至sh),结果都完全一样。
我当前使用的libcairo2版本是1.16.0-5ubuntu2,在.config/fontmanager/conf.d目录下也有指向Noto Color Emoji的配置文件。
我肯定是在某个地方犯了低级错误,但实在找不到问题所在,有没有大佬能给个排查指南帮我定位问题?
备注:内容来源于stack exchange,提问作者rolandw




