Windows 10 - Alt code results in wrong character

By default, the numeric keypad way of entering characters by code can only access the first 256 characters. (I believe these are defined by your system's code page for non-Unicode programs.) Codes bigger than 256 get wrapped around, so code 257 actually gets you character 1.

To enable the entry of all Unicode characters by code, create a string registry value in Computer\HKEY_CURRENT_USER\Control Panel\Input Method called EnableHexNumpad with the value of 1. Then you'll be able to enter any character by holding down the right Alt key, pressing the + button on the numeric keypad, entering the hex code (2, 7, 1, 3 in your case), and releasing the Alt key. You may need to log off and back on before this input type is enabled.

Note that the non-+ method of entering ASCII characters by code will continue to wrap around even after you enable this mode.


Instead of trying to remember that ✓ is U+2713 (which I am unable to), I can suggest trying a piece of software I maintain called WinCompose. It inserts itself in the keyboard input chain and when using the default Right Alt as a compose key, lets you enter combinations such as:

  • Right Alt @ / for ✓
  • Right Alt @ X for ✗
  • Right Alt [ Space ] for ☐
  • Right Alt [ / ] for ☑
  • Right Alt [ x ] for ☒
  • … and thousands more

There is a GUI that lets you search for sequences and characters. Of course if you only know the Unicode codepoint for a given character and not the (supposedly intuitive) combination, you can still activate Unicode input in WinCompose and do the following:

  • Right Alt u 2 7 1 3 for ✓

Finally, note that Windows doesn’t let you enter Unicode characters beyond U+FFFF with the EnableHexNumpad key, so you won’t be able to enter e.g. U+1F4A9, but WinCompose lets you do this:

  • Right Alt u 1 f 4 a 9 for 💩

After reading this I have discovered right-alt and left-alt produce different results for the same code.

To get GBP I used to enter left-alt 0163, which produces ú. I should be using right-alt 0163, which produces £.

Since I use my right hand on the keypad, pressing right-alt with the left hand is not as convenient as pressing left-alt.

Try using right-alt instead of left-alt.