Windows – Some Unicode fonts not working in Windows 7/Firefox

fontsunicodewindows 7

I want to display Egyptian Hieroglyphics:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

These are part of Unicode 5.2.

TL;DR:

  • Installing Noto fonts in a clean Windows 7 or Windows 8 VM works as you'd expect and I have hieroglyphics in Firefox.
  • Installing Noto fonts on my local machine doesn't work. No program shows me any hierglyphics unless I specifically call up the font.
  • I've tried various work-arounds such as filenames on the desktop to trigger IE using those characters, no luck.

Details:

I tried installing the Aegyptus font, as well as the Google Noto fonts.

The result is that the new fonts appear on my system (I can use them to format text in MS Word, for example) and if I explicitly refer to them in a web page (i.e. by setting the font-family to 'aegyptus') they appear correctly:

enter image description here

The problem is that I can't control what fonts a web page uses and it's my understanding that Windows or my browser should automatically detect that the glyphs are not in the font and find an appropriate match.

I have tested this on a clean vm (the Windows 7/IE 9 Virtual Box VM from modern.ie) and found that installing noto and Firefox allows the fonts to just work. After installing a font, the glyphs appear automatically in Firefox without me having to specify the font-face. But for my local bare-metal machine it does not work.

I checked My Windows 7 has suddenly stopped displaying Unicode symbols which suggests a problem with Chrome, and recommends putting a file on the desktop with characters that use the unicode code points you need. However, I tried putting both a file with a Chinese character, and a file with an Egyptian character in the filenames, and that didn't help. Note: at no time have any of my Chinese characters stopped working. It's only the other character ranges that aren't working.

In any case I've tried disabling every start-up program I can find to see if one of them wasn't mucking this up but nothing has helped. I even uninstalled Chrome, Adobe Acrobat, and several other possible candidates, to no avail.

UPDATE

I've discovered one work-around which helps but I would like a better solution. If I turn off "Use hardware acceleration when available" and restart Firefox, then my fonts appear. I have verified that I have the latest drivers for my graphics card (Intel HD4000) and that doesn't seem to help. This bug report at Mozilla suggests that there are font-rendering problems on certain cards, but the stated work-around doesn't affect me, and in any case my fonts look fine, but the glyph substitution is not happening.

Best Answer

my browser should automatically detect that the glyphs are not in the font and find an appropriate match

Unfortunately, this assumption on OP is only true for Firefox. Firefox uses fontconfig which does per-glyph font substitution; appropriate font is used if it contains concerned character.

On comparison between IE and Chrome, IE is slightly better in that it provides more extensive fallback on per-script basis and provide UI settings for fonts, though that didn't cover Egyptian Hieroglyphs. The font fallback mechanism for Uniscribe / DirectWrite, the components mainly for complex text layout, is described in this MSDN article.

Though Chrome finally supports per-script font fallback on 2012, users have to install extra extension to tweak them — one such extension is Advanced Font Settings. However telling all site visitors using Chrome to install extension isn't quite feasible.

About the original problem, one might want to investigate on the direction of font fallback mechanism, probably some other bad behaving font overrides Noto font, claiming to support those glyphs while in fact it doesn't. A tedious method is to remove extra fonts on system and re-add them one by one until the culprit is found.

Related Question