开发者

MFC : How to check if a character input is unicode?

开发者 https://www.devze.com 2022-12-27 14:04 出处:网络
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.

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开发者_StackOverflow中文版:

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


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!!


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


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


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")

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号