[怪事情] Spacemacs下Unicode不能正常显示

这可能和spacemacs无关,我今天第一天折腾字体,学习了一些帖子和文档后,做了以下实验:

(set-fontset-font t ?🂩 "Symbola")   ;; Symbola默认版黑桃9
(set-fontset-font t ?🂩 "Ubuntu Mono")   ;; C-x C-e会把黑桃9变成 "hex-code" 丑方块

Font-manager 截图

image image

Emacs截图

执行Symbola行

image

执行Ubuntu行

image

我希望的效果是 Ubuntu Mono 能显示正确的“大黑桃”版黑桃9。

怪事情指的是,明明我的系统有的是字体能打印Unicode,为什么在Emacs GUI里,只有当设置“Symbola"时才能显示。此外,Terminal版Emacs一直都是显示“大黑桃”版(说明我系统字体显示Unicode没有问题)。

环境:

  • Ubuntu 16.04
  • Emacs 27.1
  • Spacemacs

Update:

近一步测试发现,除了GUI下不能正常显示🂩,其他所有场景下都可以(Emacs TUI, vim, gvim, gedit)。是我emacs编的不好???

自己回答自己了。

试了一大波,最后发现竟然如此简单:

(set-fontset-font t 'playing-cards (font-spec :script 'playing-cards))

;; This is better
(set-fontset-font t 'playing-cards "DejaVu Sans")

Edit:

stackexchange上有人给了我有关字体的完美答复