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

Last reviewed: June 25, 1997
Article ID: Q170560
The information in this article applies to:
  • Microsoft Win32 Software Development Kit (SDK)

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


================================================================================


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: June 25, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.