Bill-Gray/PDCursesMod

`WM_CHAR` does not function properly when `_UNICODE` is defined

GitMensch opened this issue · 0 comments

My app that uses PDCursesMod is compiled with the Use Unicode Character Set option with MSVC++, which will ensure all Win32 API calls use the wide-character variants, all of which use UTF16 encoded characters and strings regardless of the user's selected locale.

That means that when _UNICODE is defined the character sent to the WM_CHAR message is UTF16 encoded -- and PDCursesMod adds it to key queue directly via add_key_to_queue((int) wParam); My app defines PDC_FORCE_UTF8, so I was assuming that internally this character would be converted to a sequence of UTF8 bytes to be received by getch() calls.

However, this was not the case, and parsing some non-ascii characters was problematic.

Originally posted by @clangen in #260 where @Bill-Gray presented a different (still unfinished) approach.