Windows: How to Enter Unicode Characters via the Keypad

If you’ve used Windows for any length of time you’re probably familiar with entering special characters with the ALT+ method. For example, to enter “É” — Latin Capital Letter E with Acute, Unicode code point U+00C9 — you can hold down the ALT key and while continuing to hold it down, type 0201 on the numeric keypad, then release the ALT key. It doesn’t take long before you’ve memorized the characters you use frequently.

There are some problems with this method. The original PCs used CP437 (code page 437) keyboard mapping for English. When Windows came along, CP1252 (code page 1252) began to be used for keyboard mapping. If you use the ALT+ method with a three-digit code (the first digit non-zero), for example, ALT+201, you get “╔”— Box Drawings Double Down and Right, Unicode code point U+2554 — the character at CP437’s code point 201. If you add a leading zero (0) and then the number, ALT+0201, you get “É”, the character at CP1252’s code point 201. Confusing, right?

When Windows made the transition to Unicode, there were attempts to extend this to allow entry of any Unicode code point. Some applications like Word 2010 or PSPad 4.5.6 interpreted ALT+ codes larger than 255 directly as a decimal Unicode code points, but other software interpreted such numbers modulus 256 (the remainder after dividing by 256), or ignored any digits after the third. Although CP1252 is almost identical to the start of Unicode, ALT+ method prevents entry of the Unicode code points from U+0080 to U+009F, and even more problematic, other ANSI code pages prevent entry of some very common Latin accented letters. In addition, most Unicode documentation show the code points in hexadecimal, not decimal. So a third method was developed to unambiguously enter Unicode.

The third method is not enabled by default in Windows. You have to set it up yourself.

Setting up this method involves making modifications to the Windows Registry. If you are not familiar with modifying the Registry, you might want to have somone else make the modifications for you.

To enable the third method, you need to set or create the registry key

HKEY_CURRENT_USER\Control Panel\Input Method\EnableHexNumpad

with type REG_SZ and set the value to 1. Then you need to reboot your computer.

The following method can then be used to enter Unicode codepoints:

Hold the ALT key down, then type the + key on the numeric keypad, then type the hexadecimal number (using the numeric keypad for digits 0–9 and the normal keys for A–F), then release the ALT key.

For example, ALT++C9 will produce “É” — Latin Capital Letter E with Acute, Unicode code point U+00C9. You can enter the leading zeros of the hexadecimal or not. ALT++C9, ALT++0C9, and ALT++00C9 all produce “É”.

The transition to Unicode actually made the old legacy ALT+ codes (the ones with no leading zero) more reliable, as all the glyphs in the legacy code pages have matching glyphs in Unicode, so they all work.

This method works when entering comments in WordPress, but doesn’t work when creating pages in the WordPress admin area.

To get you started, here are some characters from the Miscellaneous Symbols Unicode block U+2600 to U+26FF. (You can also cut-and-paste these characters.)

2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
260A
260B
260C
260D
260E
260F
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
261A
261B
261C
261D
261E
261F
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
262A
262B
262C
262D
262E
262F
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
263A
263B
263C
263D
263E
263F
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
264A
264B
264C
264D
264E
264F
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
265A
265B
265C
265D
265E
265F
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
266A
266B
266C
266D
266E
266F
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
267A
267B
267C
267D
267E
267F
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
268A
268B
268C
268D
268E
268F
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
269A
269B
269C
269D
269E
269F
26A0
26A1
26A2
26A3
26A4
26A5
26A6
26A7
26A8
26A9
26AA
26AB
26AC
26AD
26AE
26AF
26B0
26B1
26B2
26B3
26B4
26B5
26B6
26B7
26B8
26B9
26BA
26BB
26BC
26BD
26BE
26BF
26C0
26C1
26C2
26C3
26C4
26C5
26C6
26C7
26C8
26C9
26CA
26CB
26CC
26CD
26CE
26CF
26D0
26D1
26D2
26D3
26D4
26D5
26D6
26D7
26D8
26D9
26DA
26DB
26DC
26DD
26DE
26DF
26E0
26E1
26E2
26E3
26E4
26E5
26E6
26E7
26E8
26E9
26EA
26EB
26EC
26ED
26EE
26EF
26F0
26F1
26F2
26F3
26F4
26F5
26F6
26F7
26F8
26F9
26FA
26FB
26FC
26FD
26FE
26FF

Leave a Reply