views:

52

answers:

4

Hi All,

I have an input text field which accepts a certain maximum number of characters. This number of characters should change though if the character inputs are unicode. Question:

Is there a way I could check if the character input is unicode or not?

+1  A: 

Check the length of the string and size in bytes.

  • If both are equal then it ASCII.

  • If size in bytes is larger than length of the string, then it contains UNICODE characters.

I remember using Len() and LenB() functions in VS6 for the same...

GoodLUCK!!

CVS-2600Hertz
A: 

Microsoft supplies the API IsTextUnicode. Some of its bugs are famous.

Windows programmer
A: 

I figured using regex to check each character input if it's unicode or not is easier... :)

Owen
A: 

Any character you input is Unicode, because Unicode covers all code pages supported by Windows, and more.

You can call IsWindowUnicode and if the result is true, and you retrieve the text with GetWindowTextW (or GetWindowText and UNICODE is defined), then the result is stored in a Unicode string (wchar_t or WCHART, same thing).

Otherwise you retrieve the result in a char array and it is encoded in the system code page (also improperly called "ANSI code page")

Mihai Nita