Some Unicode fonts not working in Windows 7/Firefox

16

2

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.

Mr. Shiny and New 安宇

Posted 2014-07-16T20:26:58.527

Reputation: 1 112

Does other custom fonts work? – bhathiya-perera – 2014-07-17T01:32:11.450

@BhathiyaPerera I am seeing the same issue with, eg, the Carian script. On my local machine the text doesn't appear unless I edit page and inject the font family. On my VM, in Firefox, it works fine.

– Mr. Shiny and New 安宇 – 2014-07-17T02:00:52.380

I recommend that you test with like 10 free new fonts and also post the related code and then flag the question to be moved to stackoverflow if necessary. – bhathiya-perera – 2014-07-17T06:25:54.983

I still wonder whether this is applies only scripts whose code points lie above the BMP (n > 0xFFFF), which would include things like Mathematical Alphanumeric Symbols, the emoji of Miscellaneous Symbols And Pictographs, most of the the Emoticons, as well as the Gothic, Desert, Carian, Egyptian Hieroglyphics, and Cuneiform scripts all in the SMP, plus the various various CJK ideographs in the SIP. – tchrist – 2014-07-17T14:52:00.353

@BhathiyaPerera This is not about code. This is about automatic font substitution. When I load this SU question on my workstation, I see little boxes where I should see hieroglyphs. When I load this same page on my VM in the same browser, I see hieroglyphs. But I can tell that the font is installed on my workstation because I can use Firebug to modify this page's DOM and set the font-family; then the font appears. – Mr. Shiny and New 安宇 – 2014-07-17T18:23:48.370

@tchrist yes, so far this does seem limited to SMP scripts. But the SMP scripts do partially work. – Mr. Shiny and New 安宇 – 2014-07-17T18:26:17.590

@Mr.ShinyandNew安宇 Some bad news but very likely an explanation to your problem. Your update indicates the DirectWrite API was not picking correct font in Firefox. Although DirectWrite supports Egyptian hieroglyphics later, it's only available after Windows 8.

– Abel Cheung – 2015-06-24T18:02:59.343

@AbelCheung Maybe a good excuse to upgrade to Windows 10 then :) – Mr. Shiny and New 安宇 – 2015-06-24T19:01:36.307

For web pages, you can use the custom font functionality of css – Uğur Gümüşhan – 2016-07-07T00:47:23.420

@UğurGümüşhan The problem is that I'm not the site author and have no control over the CSS. Some random web page (such as this very post on Superuser.com) has hieroglyphs on it but doesn't specify a language or font and my browser shows garbage. In some cases my browser does the right thing but in other cases it does not. – Mr. Shiny and New 安宇 – 2016-07-07T03:05:46.893

@Mr.ShinyandNew安宇 in that case there's no reasonable solution to your problem – Uğur Gümüşhan – 2016-07-07T04:24:56.747

@UğurGümüşhan I'm not sure why that's necessarily the case. Firefox works properly in some circumstances but not in others. I suspect it's a problem with the video driver, or Windows itself, but that doesn't mean there isn't a configuration change or software update that can fix the problem. – Mr. Shiny and New 安宇 – 2016-07-07T05:10:36.917

Answers

1

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.

Abel Cheung

Posted 2014-07-16T20:26:58.527

Reputation: 348

Sigh. I had wondered at the possibility of a font lying about supporting these glyphs. – Mr. Shiny and New 安宇 – 2014-07-28T15:31:53.253

Unfortunately, the Chrome approach using that plugin doesn't work either. From its Chrome-store description: Chrome will use the font settings controlled by this extension when BOTH of the following are true: 1) The web page has declared the language of the content (e.g., by using the HTML lang attribute); and 2) The web page has not specified a font to use. – Mr. Shiny and New 安宇 – 2014-07-28T15:39:23.070

I've "tediously" deleted every font that was not found on my reference VM and the problem persists in Firefox. – Mr. Shiny and New 安宇 – 2014-07-28T16:05:29.530

That's odd. Now there are 2 other possibilities I can think of: (1) whether language settings on VM and your testing machine are identical; (2) whether the font-family list in firefox (from element inspection) are identical in both environments. Current I've got no idea if these 2 points show no sign of suspicion. – Abel Cheung – 2014-07-28T21:21:59.600

-1

There is a WIKI page dedicated to display of special characters including hints for IE and egyptian characters: http://en.wikipedia.org/wiki/Help:Special_characters Maybe this might provide some help

Jürgen Schoch

Posted 2014-07-16T20:26:58.527

Reputation: 1

1That page basically tells you to install fonts. I have already done that. – Mr. Shiny and New 安宇 – 2014-07-25T20:43:46.253

-1

I had same problem with software which had char of my language in it's windows it didn't show true char, then i changed setting in control panel ->region and language-> administrative ->Language for non-Unicode, and set it for my language.

alireza

Posted 2014-07-16T20:26:58.527

Reputation: 11

1The fonts in question are strictly part of Unicode. The setting for non-Unicode doesn't come into play here. Anyway nobody has "Egyptian Hieroglyphics" as their computer language. – Mr. Shiny and New 安宇 – 2014-07-28T13:28:20.410

@Mr.ShinyandNew安宇: !! – Cerberus – 2014-07-28T17:34:49.760

-3

If no fonts are installed that have a match for the characters, then they can't be displayed; Windows won't download fonts automatically!

You could embed use @font-face (webfonts) in the css of your webpage. Add something like this to your css to define the webfont:

@font-face {
    font-family: 'NotoSansEgyptianHieroglyphs';
    src: url('http://myserver/example/NotoSansEgyptianHieroglyphs-Regular.ttf');
}

Then apply a style to the element with the hieroglyphics in your css:

.hieroglyphics {font-family: NotoSansEgyptianHieroglyphs;}

D Schlachter

Posted 2014-07-16T20:26:58.527

Reputation: 1 399

2I have fonts installed. And I have verified on two different Windows VMs that installing the fonts is normally sufficient to make them work. Something is different about my machine but I don't know where to look to find it. – Mr. Shiny and New 安宇 – 2014-07-16T20:44:00.767