?
Solved

Why display ??? under VB Controls?

Posted on 2003-03-29
12
Medium Priority
?
203 Views
Last Modified: 2012-05-04
Hi,

  I have the following questions :

Case 1  :
  OS    : English W2K Pro SP3 / WinXP SP1, using 'Chinese (Taiwan)' in Regional Setting
  VB    : 6.0 SP5, MDAC 2.7, SQL Server 2K SP3
  Data  : Unicode with Simplified and Traditional Chinese
  Result: can properly display Traditional Chinese Characters,
          display ???? in Simplified Chinese Characters

Case 2  :
  OS    : English W2K Pro SP3/WinXP SP1,using 'Chinese (PRC)' in Regional Setting, Simp. Win98SE
  VB    : same as above case
  Date  : same as above case
  Result: can properly display both Traditional and Simplified Chinese Characters


  What should I do in order to solve this problem?.. I suppose both traditional and Simplified Chinese Characters can displayed under traditional Windows 2K, as it is UNICODE enabled. Am I right?.

Regards,
Thomas Cheung

 
 
 
0
Comment
Question by:thomascy
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +2
12 Comments
 
LVL 22

Expert Comment

by:rspahitz
ID: 8233003
Unicode is a trick deal.  I don't have the answer handy, but if you pick up the book on "Internationalization of you VB6 Application" (or something similar distributed by MS press) I think it describes how to overcome these problems in something like chapter 11.
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 8233037
hearing...
0
 
LVL 2

Expert Comment

by:stretch71
ID: 8235344
Yes Win2K can handle the unicode for both versions of Chinese, however you will actually be using the DBCS character sets when running VB6 apps since VB6 uses ANSI code pages to display data to the user.

The incompatabilities are probably a result of some glyphs not being present in the TC charcter set, while the glyphs are present in the SC version.

The character set VB uses will be determined by your system code page (is you systems regional settings, not your user's regional settings).

Hope this helps.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:thomascy
ID: 8235809
I ensured that the stored data are UNICODE, that means VB6 will convert to DBCS internally while displaying chinese characters?..

But why MS Access 2000 can do that?... In MS Access 2000, it can display both TC & SC characters in W2K with 'Chinese (Taiwan)' in Regional setting.

And how can I change system regional settings in W2K?..

Thomas
 
0
 
LVL 2

Expert Comment

by:stretch71
ID: 8235907
Access 2K is fully unicode compliant, VB6 is not.  Access and the rest of the Office2K suite were developed to handle unicode input as well as the older code page input, depending on the OS version you are running.  You don't have this control in VB6.

When VB6 was developed it was assumed that the "outside world" (ie the operating system) worked in a particular code page, not in Unicode.  This means that all standard controls and so forth will convert from DBCS to unicode and back again on I/O.  You can get unicode compliant controls but it means a lot of rework you your application.

To change your system settings go to regional settings->general->set default... and select the appropriate locale.

After reboot you should see some changes to how your application behaves.
0
 

Author Comment

by:thomascy
ID: 8238112
stretch71, thank you for your detail explaination. But can you kindly suggest any other solutions?.. any other controls support UNICODE in VB?

Thomas
   
0
 
LVL 2

Accepted Solution

by:
stretch71 earned 2000 total points
ID: 8241684
There are the Windows Forms 2.0 controls (I think that they are installed as part of office, and you will have to check wether they can be redistributed) and they provide good replacements for most of the standard controls (ie text boxes, labels, etc) and in most cases can just be dropped in as direct replacements.

If you are using 3rd party controls, or something a little more unusual you will have to check for yourself.  Sorry.
0
 

Author Comment

by:thomascy
ID: 8258201
Good!... It really works!.. But is there any tricks in deployment?.. or is there any tips in using Forms 2.0 Control?..

Thomas
0
 
LVL 2

Expert Comment

by:stretch71
ID: 8258260
Deployment is standard.  Just make sure the .ocx is part of your install kit.  I haven't used the forms package that much so I can't provide any tips other than to use the controls in the same way you would any other control.
0
 
LVL 22

Expert Comment

by:rspahitz
ID: 8259068
My understanding is that the forms ocx can only be distributed to machines that are licensed with Office, according to the Microsoft documentation.

0
 

Expert Comment

by:stressedout
ID: 8262971
I've experienced exactly the same in XP.

Before you can use Chinese(Taiwan) in VB, in Control Panel/Regional and Language options/Languages
you need to

"Install files for East Asian languages"

in "Text services and Input Languages/Details" add a Chinese(Taiwan)keyboard

in "Advanced"
select Chinese(Taiwan)
code pages (e.g Traditional Chinese Big 5)

voila! no ??? but chinese!!!

no wierd ocx stuff!!
0
 

Expert Comment

by:stressedout
ID: 8263026
Forget my last comment, it may not be relevant, sorry
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Suggested Courses
Course of the Month8 days, 23 hours left to enroll

764 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question