Visual C++ cannot display some of the multi-byte characters (170560)



The information in this article applies to:

  • Microsoft Platform Software Development Kit (SDK) 1.0

This article was previously published under Q170560

SYMPTOMS

Support for the following product versions has been discontinued. For more information about product retirement, visit the following Microsoft Web site: Refer the customer to online resources such as the Microsoft Knowledge Base, Frequently Asked Questions, and Newsgroups at the following Microsoft Web site: When you use Visual C++ 4.x on the East Asian versions 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.

WORKAROUND

Method 1

  1. Type the specific Chinese characters in Notepad.
  2. Insert these characters into Visual C++ by 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.

Method 2

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.

Modification Type:MajorLast Reviewed:1/4/2006
Keywords:kbIntlDev kbprb KB170560 kbAudDeveloper