我也有类似的问题:我想使用某些符号,这些符号只有Windows终端中的某些字体具有覆盖范围。当所选字体没有必要的字形时,系统的font susthback启动以在另一种字体中找到符号。 最好的是,后备找到一个与基本字体或其他缺失符号的后备视觉兼容的符号。
最坏的情况,它代替了表情符号(就像您在评论中提到的大棋子一样)。 大多数表情符号都不适合单个角色单元格,它们具有自己的颜色,而不是当前的前景和背景颜色。 (颜色覆盖是基于Windows终端设置。)我尝试用VS15
抑制表情符号,但似乎忽略了字体后备机制。
UPON启动,该程序调用GetCurrentConsolefontex
查找当前字体。 与currentConsolefontex
不同,这似乎在Windows终端中起作用。通过字体,我的程序称GetGlyphindicesw(带有ggi_mark_nonexisting_glyphs flag),以确定该字体不支持其要显示的符号。
字体未涵盖的任何符号都会受到字体后备的约束。 在我的域中,缺少符号有合理的文本缩写,因此我的程序根据需要将其交换。该程序还通知用户,他们可能会通过更改字体选择来获得更好的体验。