答案 0 :(得分:7)
根据定义,这些字符应该填充整个字符单元格。如果不是,则您使用的字体可能存在问题。 (例如,您的默认字体可能没有该字符,因此终端必须使用具有不同指标的替代字体。)
您可以通过输入反向视频模式("\x1b[7m"
)并输出空格字符,然后在您进行切换("\x1b[0m"
)时“假装”一个块字符来解决此问题。完成。
答案 1 :(得分:6)
U + 2588应该在终端中占据一条线的全高,但由于字体问题,它并不总是这样做。
块元素字符在Unicode字符的第15.8节Geometrical symbols中描述:“传统块元素设计用于填充每个显示单元格的某些定义部分,或者用一些定义的着色程度填充每个显示单元格。 [...]在模拟终端应用程序时,实现块元素字符的字体应设计成相邻的 像U + 2588完整块这样的字符的字形创建了实心图案,它们之间没有间隙。“
但是,fonts that support U+2588并不总是正确实现它。因此,您应该检查是否可以将字体设置为具有U + 2588正确字形的字体,例如DejaVu Sans。
如果您在比简单终端更复杂的环境中使用U + 2588和朋友,例如模拟简单终端的软件,或者在文字处理器中,您可能还有另一个问题。即使U + 2588在以字体正确实现时,也会占据字体的整个高度,但它通常不会占据行的整个高度。通常行高比字体高度(字体大小)大,你需要采取额外的措施使它们相同(使文本“固定”)。