Subject: Re: bug#10299: Emacs doesn't handle Unicode characters in keyboard layout on MS Windows

From: Eli Zaretskii <[email-masked]>
Date: Thu, 15 Dec 2011 19:34:51 +0200

> From: Jason Rumney <[email-masked]>
> Cc: Joakim Hårsman <[email-masked]>,
>   [email-masked],  [email-masked]
> Date: Thu, 15 Dec 2011 22:40:15 +0800
> 
> > Yes, Emacs on Windows uses the ANSI codepage to read the keyboard
> > input.  Does it help to play with the value of keyboard-coding-system?
> 
> It tries to use Unicode if the Windows input method is sending it.

But am I right that, except for perhaps IME, we mostly get WM_CHAR
messages with ANSI character set, because we call the ANSI version of
RegisterClass?

If that is the reason, are there any complications to call
RegisterClassW instead (on NT and later systems; I think Windows 9X
are safer with ANSI)?

> Some input methods will send WM_UNICHAR messages with the Unicode
> character, which can be intercepted before they are turned into question
> marks by Windows. These will just work with Emacs.
> 
> Others will send character codes corresponding to the codepoints in the
> default Windows codepage for that language (regardless of your system
> codepage). These can be handled by changing keyboard-coding-system
> within Emacs.
> 
> Others will not send anything useful unless your system codepage is set
> appropriately for the language being input.
> 
> It sounds like this one may be in the third category.

I'm not sure MKLC works through IME.  Do you know that for a fact?