Reputation: 4173
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?
Upvotes: 1
Views: 3400
Reputation: 5787
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")
Upvotes: 0
Reputation: 4173
I figured using regex to check each character input if it's unicode or not is easier... :)
Upvotes: 0
Reputation: 8075
Microsoft supplies the API IsTextUnicode. Some of its bugs are famous.
Upvotes: 1
Reputation: 22517
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!!
Upvotes: 1