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

From: Joakim Hårsman <[email-masked]>
Date: Wed, 14 Dec 2011 21:39:28 +0100

In MS Windows, users can easily create custom keyboard layouts using
Microsoft Keyboard Creator [1].

This can be used to for example to make typing certain Unicode symbols
easier (like Greek letters when typing mathematical formula), and is
very useful.

However, Emacs doesn't seem to handle the case when the keyboard
layout contains characters not available in the ANSI code page, and
just prints a question mark character instead. For certain characters,
a character that is visually similar to the actual character is
printed instead of a question mark. For example, if I use a layout
where AltGr+O produces U+2218 RING OPERATOR, Emacs prints U+00B0
DEGREE SYMBOL instead. The degree symbol is available in Windows 1252,
the default ANSI code page on my system, but the ring operator isn't.
However, if the layout maps AltGr+R to U+0220A SMALL ELEMENT OF, Emacs
just prints a question mark, presumably because Windows 1252 doesn't
contain a reasonable replacement for that character.

I can reproduce this on Emacs 24.0.92.1 (i386-mingw-nt5.1.2600) even
when started with -q to skip any customization.

I'd be happy to help debug this but I have no idea where to even
start. Is there an easy way to find out if it's the C code that
clobbers the character or if it happens in lisp for example?

[1]: http://msdn.microsoft.com/en-us/goglobal/bb964665