I am trying to display some ANSI text which contains characters from the Unicode private use area. I have two fonts which contain these characters. The first is a PCF (bitmap) font, and the second is a TTF font, generated from the first and containing the exact same set of glyphs.
The PCF font is available in Debian and Ubuntu in the "tv-fonts" package and is called "teletext". The TTF versions are available here.
I display this text file by configuring my terminal to use one of my fonts, and then cat'ing this file.
This produces different results in different terminals:
Xterm can only use PCF fonts. With
xterm -fg white -bg black -fn teletext I see the correct output:
Terminator can use both PCF and TTF fonts. With PCF font the output is correct:
But if I tell terminator to use a TTF font the output contains an unexpected character after the big "BBC" logo:
The character in question is , unicode 0xee20. It is an empty space in both the PCF and TTF fonts.
When using xfce4-terminal the results are the same. Terminator and Xfce4-terminal both use libvte.
So my question:
- Why is libvte displaying the wrong glyph?
- Why does it behave differently between TTF and PCF? (Remember that both fonts contain an identical set of glyphs.)
Update: It seems that this isn't actually related to VTE but to Gtk, and possibly X11 itself. The same results can be seen when setting the font in a text editor, such as mousepad (which uses GtkSourceView.)