Arial Unicode MS and IE 6

C

Csaba Gabor

I'm having an issue with display of certain unicode
characters in IE6 on my Win XP Pro.

If I compose a post (on say http://answers.yahoo.com),
then I am able to copy/paste unicode characters from
Word, such as minus/plus ∓ (2213), cube root ∛ (221B),
and superscript 4â´ (2074). These will appear fine if I
then view the post in Firefox. However, in IE 6 only
the superscript 4 will show properly.

I tracked down the reason to style sheet statements
within the HTML such as:
<style type="text/css">
body{font-family:Arial,Helvetica,sans-serif;}
</style>

Now the funny thing about this is that if I have the
font in IE 6 set to Arial Unicode MS and there is no
style/font statement, then the characters render
fine in IE (I can make this setting via the menu:
\Tools\Internet Options\Fonts then selecting
Arial Unicode MS from the left side menu (web
page font), which I'm supposed to have since I
have Microsoft Office).

So evidently, what I would like is some way to
have Arial map onto Arial Unicode MS, which is
installed on my system since I have Office.

My question is: ==> what is the proper way to
accomplish this remapping for IE only, as
opposed to XP (which XP remap I detail below)? <==
(I'm thinking perhaps something like a user defined
style sheet that remaps Arial to Arial Unicode MS)


I have made a font remapping, but I don't think
it's a very nice solution as it applies, I presume,
to the entire XP system rather than just IE.

I make two changes in the registry, both are needed:
(1) Under the key
HKLM\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
I insert a new string value
Arial => Arial Unicode MS

(2) Under the key
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Font
I change
Arial (True Type) => ARIAL.TTF
to
Arial (True Type) => ARIALUNI.TTF

Since this font remapping does not work with
only one of the above changes, I think that
what happens is that XP looks for the ARIAL
font, is not buying the
Arial (True Type) => ARIALUNI.TTF mapping,
so it goes back to the FontSubstitution and
digs up the Arial Unicode MS in that way.
Nevertheless, it does show the unicode
characters from answers.yahoo.com

To get the same type of thing to work with the
excellent unicode glyph viewer at
http://isthisthingon.org/unicode/index.phtml?page=02&subpage=2
I had to change the FontSubstitution mapping of
Helvetica => Arial
to
Helvetica => Arial Unicode MS

In light of all of this, I have to wonder what
functional/business purpose it serves for
web authors to set a particular font when
they are using higher order unicode chars.


Thanks for any tips / comments,
Csaba Gabor from Vienna
 
C

Csaba Gabor

For a few specific domains, such as
http://isthisthingon.org/unicode/index.phtml?page=02&subpage=2
http://answers.yahoo.com
http://groups.google.com/group/microsoft.public.windowsxp.basics/browse_frm/thread/4f294474727e3eec
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
 
C

Csaba Gabor

Andrew, the reason that your response is worse than
useless is because when other people see that there
is already a response, they are less inclined to
read the question, and possibly supply a helpful
answer. In particular, The fact that the fonts are
TrueType has little to do with the issue. It is
their usage that is important. And if we pursue that
avenue of thought, would it not have been better to
provide a link to the specific font I was concerned
with, http://en.wikipedia.org/wiki/Arial_Unicode_MS
By a considered reading of my post, you should have
been able to come to the conclusion that I had
attempted to research the problem before posting. In
the future, I hope that you will avoid the knee
jerk response of "I don't know the answer so I'll
recommend that you do a search."
 
A

Al Falfa

Csaba said:
For a few specific domains, ... I would like IE to use 'Arial Unicode
MS' so that characters such as ... are properly displayed. The original
solution I posted remapped the font across the system and was not
IE specific.

You have not quoted *any* part of this thread.
I see no other messages with 'Subject: Arial Unicode MS and IE 6',
except the one where you quoted Andrew E.'s reply, but nothing else.
I will guess at what you are hoping to achieve.
... 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) ... 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). ... 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. ...

A User style sheet will *not* tell IE to display all fonts as 'Arial
Unicode MS' if a site uses classes or IDs to set another fontFamily via
CSS, *unless* your User style sheet accounts for the classes or IDs used
(at those sites).
What would be nice is a way to turn this into a domain specific
setting. ...
3rd approach) My final site specific solution is to write a daemon ...

"The Proxomitron" can do domain/site-specific filtering of HTML and CSS
(inline, <style> and .css) plus much more.
Any HTTP browser can be set to use it.
 
C

Csaba Gabor

You have not quoted *any* part of this thread.

That's true. The post was meant to function stand alone, as a
follow up to my original posting, and the first paragraph was
meant to summarize, but I see that it doesn't provide full context.
Here is the original thread (posted in this group on March 25)

http://groups.google.com/group/microsoft.public.windowsxp.basics/browse_frm/thread/4f294474727e3eec/
I see no other messages with 'Subject: Arial Unicode MS and IE 6',
except the one where you quoted Andrew E.'s reply, but nothing else.
I will guess at what you are hoping to achieve.





A User style sheet will *not* tell IE to display all fonts as 'Arial
Unicode MS' if a site uses classes or IDs to set another fontFamily via
CSS, *unless* your User style sheet accounts for the classes or IDs used
(at those sites).

Yes, that's true and a good point. In fact, for the three sites I
mentioned, I think
body {font-family:Arial Unicode MS !important;}
worked only for yahoo. For groups.google.com I used
td instead of body and with isthisthingon.org I used
* instead of body.
"The Proxomitron" can do domain/site-specific filtering of HTML and CSS
(inline, <style> and .css) plus much more.
Any HTTP browser can be set to use it.

I prefer to have non compiled solutions, but this was a
good tip. There was some interesting reading at
http://en.wikipedia.org/wiki/Proxomitron
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top