PRB: ExtTextOutW or TextOutW Unicode Text Output Is Blank

ID: Q145754


The information in this article applies to:


SYMPTOMS

When you use ExtTextOutW or TextOutW to display a character that is in the unicode range but not in the particular codepage with which the font file is associated, a blank character is displayed.


CAUSE

The Unicode font glyphs are stored inside the font file. However, one font file does not contain all the glyphs required to display all 64K possible Unicode characters.

Windows NT and Windows 95 support the Unicode Font file. Therefore all of the Unicode glyphs can be rendered if the glyph is found in the font file. However, Windows 95 does not support the Unicode characters other than the characters for which the particular codepage of the font file is defined. When Windows 95 opens a font file, it will first determine which encoding standard the font file contains (for example the ANSI, SHIFTJIS, BIG5, or HANGEUL character set) by looking at the LanguageID in the name table. After Windows 95 determines the file's LanguageID, the font file can only support that particular language, even though other glyphs may exist in the font file. For example, a Japanese font file can not support Hangeul because the Japanese codepage does not define any Hangeul characters. But a Japanese font can support part of Cyrillic because the Japanese codepage defines part of those.

On the other hand, Windows 95 supports multiple character sets from one font file. For a given font file that supports multiple character sets, Windows 95 will enumerate the multiple character sets as a seperate fonts.

The user can determine if a font supports multiple character sets in the Font common dialog under the Script combo box. If the selected font supports multiple character sets, then the Script combo box will have entries for the various scripts available.


RESOLUTION

The functionality as described above is by design and is different from the Windows NT Unicode Font support. In Far East Windows NT versions, FontLinks make it possible to have a font which can supports whole 64K Unicode characters. The difference between Windows 95 and Windows NT is due to the fact that the former is ANSI-based while the latter is Unicode-based.

However, Windows NT does not support a method to input all characters while Windows 95 defines those methods as multilingual specification.

In furture versions of Windows 95 and Windows NT, the multilingual specification will be merged into both platforms.


STATUS

This behavior is by design.


MORE INFORMATION

See the Win32 SDK's Multilingual support sections for more information on multiple character set handling and multilingual operation. Additionally, see Developing International Software For Windows 95 and Windows NT, Microsoft Press 1995.

Additional query words: 4.00


Keywords          : kbIntlDev 
Version           : 4.00
Platform          : WINDOWS 
Issue type        : 

Last Reviewed: March 6, 1999