J
Jeff Johnson
I wrote a little utility which views how code pages map characters to their
Unicode code points, and in the process of viewing non-Latin character sets
I see that several fonts do not support scripts like Cyrillic, for example.
However, Windows (or .NET, or something) substitutes a font which does
support those characters (Arial, it looks like), so I always see 256
characters on-screen*. This has me wondering: is there any way to determine
if a font provides a given Unicode character (i.e., code point)?
*In other words, with code page 1251 (Cyrillic) active, I see 0 - 127 in
Curlz MT, for example, but characters 128 - 255, which for the most part
differ from what most people would call "high-ASCII," appear in Arial,
because Curlz MT doesn't have glyphs for U+0400 - U+04FF.
The code for drawing these glyphs doesn't change; I simply iterate over the
256 characters in my string and print the current one using a font set up
earlier:
g.DrawString(current.ToString(), displayFont,
characterBrush,
new PointF((float)x * 32 + 24, (float)y * 36 + 52));
Unicode code points, and in the process of viewing non-Latin character sets
I see that several fonts do not support scripts like Cyrillic, for example.
However, Windows (or .NET, or something) substitutes a font which does
support those characters (Arial, it looks like), so I always see 256
characters on-screen*. This has me wondering: is there any way to determine
if a font provides a given Unicode character (i.e., code point)?
*In other words, with code page 1251 (Cyrillic) active, I see 0 - 127 in
Curlz MT, for example, but characters 128 - 255, which for the most part
differ from what most people would call "high-ASCII," appear in Arial,
because Curlz MT doesn't have glyphs for U+0400 - U+04FF.
The code for drawing these glyphs doesn't change; I simply iterate over the
256 characters in my string and print the current one using a font set up
earlier:
g.DrawString(current.ToString(), displayFont,
characterBrush,
new PointF((float)x * 32 + 24, (float)y * 36 + 52));