PRB: Visual C++ Cannot Display Some of the Multi-byte Characters

ID: Q170560

The information in this article applies to:

SYMPTOMS

When you use Visual C++ 4.x on the Far East version of Windows NT 3.51, Developer Studio cannot correctly display some of the multi-byte characters.

CAUSE

For example, Visual C++ 4.x on Traditional Chinese Windows 3.51, you can bring up the default Chinese IME (Ctrl Space) and type K - Space, and there you can find a list of 9 Chinese characters. In the list, the last two characters appear as question marks (?) on the screen. However, these characters appeared fine on other applications like Notepad.

It is by design. These two characters are Unicode, and Visual C++ editor cannot display them because it is not Unicode-enabled. On Windows 95 it will not be displayed if the users use the same IME process. Visual C++ 4.x "IDE editor" is not Unicode-aware, and it can't handle Unicode characters, but the Visual C++ 4.x IDE editor is DBCS-enabled. This means that DBCS code will be shown correctly in Windows 95 because Windows 95 uses DBCS internal code (in fact, to Traditional Chinese, it's called Big-5 code). Applications support Unicode, like Notepad, will show Unicode.

RESOLUTION

To work around the problem:

1. Enter the specific Chinese characters in Notepad. 2. Insert these characters into Visual C++ using "binary mode. (Find the

   corresponding internal code for these characters. In other words,
   separate a character into two bytes.)
3. Compile this Visual C++ project with Unicode option.

Another workaround is to use Big-5 code only. For instance, the users will only see 7 characters in Windows 95 because it is big-5 system. In Windows NT, the users can select the first 7 characters (all have big-5 code).

STATUS

This behavior is by design.

Keywords          : intlfe intluni 
Platform          : NT WINDOWS
Issue type        : kbprb

Last Reviewed: June 26, 1997