For a few specific domains, such as
http://isthisthingon.org/unicode/ind...e=02&subpage=2
http://answers.yahoo.com
http://groups.google.com/group/micro...294474727e3eec
I would like IE to use 'Arial Unicode MS' so that
characters such as minus/plus ∓ (2213), cube
root ∛ (221B), and superscript 4⁴ (2074) are properly
displayed. The original solution I posted remapped
the font across the system and was not IE specific.
In fact, I have come up with three workarounds, none
ideal, but at least each of them is IE specific and
not system wide.
1st approach: Under the IE menu item
\Tools\Internet Options\Fonts there is a setting for
Web page font. This can be set to Arial Unicode MS.
However, if a site sets a fontFamily via CSS, then
this setting will be ignored UNLESS one also makes a
second setting change. Namely, under
\Tools\Internet options\Accessibility the 'Ignore font
ftyles specified on Web pages' checkbox should be
checked. IE will now display all fonts as
Arial Unicode MS.
2nd approach) Still, it would be better if IE only
altered the fonts for the few selected pages
(domains) that have been designated, so that I can
continue to enjoy most sites in the way that I have
become accustomed to them. To this end, it would be
nice to have a domain based customization of IE. In
theory, it is possible via a User style sheet that
can be set under \Tools\Internet options\Accessibility
(remember to uncheck the 'Ignore font styles
specified on Web pages' checkbox). If that user
style sheet, say customIE.css has an entry like:
body{font-family:Arial Unicode MS !important;}
body{color: red !important;}
then this is equivalent having set IE's
fontFamily explicitly, and it ignores the site's
CSS settings. In other words, it accomplishes
the same thing as the first IE approach. By
the way, the 2nd line is there only to show
that the custom CSS is being picked up. Only the
first line addresses the issue of this post.
What would be nice is a way to turn this into
a domain specific setting. Mozilla/Firefox
provide a domain specific CSS directive, which
is what would have been easiest here. However,
IE provides a mechanism that should be usable,
called CSS expressions (which are depracated as
of IE8). It would look something like
body{font-family:expression(
"Arial Unicode MS") !important;}
body{color:expression("red") !important;}
However, the values set via expression (vs. values
set by outright declaration) do not show up in most
sites, including the ones under question, probably
because the importance is not suffiently high (a bug,
perhaps?). If the above did work, then one would
add a switch statement for document.domain as part of
the expression. And again, the color setting is
there strictly for debugging purposes.
3rd approach) My final site specific solution is
to write a daemon (which is beyond the scope of this
post) that detects whenever any instance of IE
navigates somewhere, and if such navigation is to
a targeted site, then the desired setting is
explicitly stuffed. Seems to me that this is
overkill for such an obvious problem, but there
you have it.
Csaba Gabor from Vienna
PS. To see the higher order unicode chars in this
post, use td in place of body in customIE.css