Pango needs to automatically substitute defined Z-variants for undefined ones
@lukehutch
Submitted by Luke Hutchison Link to original bug (#500586)
Description
Please describe the problem: Pango does not currently handle automatic Z-variant mapping, when the character to be displayed is not defined in any system font.
From Wikipedia: "In Unicode, two glyphs are said to be Z-variants (often spelled zVariants) if they share the same etymology but have slightly different appearances and different Unicode codepoints. For example, the Unicode characters U+8AAA 說 and U+8AAC 説 are Z-variants." See for more info: http://en.wikipedia.org/wiki/Z-variant
Most Chinese fonts do not contain U+8AAC 説, but all contain U+8AAA 說. IMEs will often cause the less common variant, U+8AAC, to be input, and on a Windows machine, the user typically can't tell that it's even a different character than U+8AAA, as it looks identical.
If you have a Chinese font installed and search gucharmap for 説, you will see that many CJK unified ideographs are in fact missing a lot of Z-variant definitions. This causes lots of characters to be displayed as square boxes in GTK programs. In particular, browsing some Chinese websites causes a large number of boxes to be displayed because of the prevalence of Z-variants used.
It would be great if Pango supported automatic re-mapping to displayable Z-variants when the desired Z-variant is not displayable, but another one is.
I am guessing that Pango is the right level to do this at rather than fontconfig, because I believe fontconfig does font substitution at the whole-font level?
Steps to reproduce:
Actual results:
Expected results:
Does this happen every time?
Other information: