This question already has an answer here:

How do I type special characters (Alt+0???) in Windows on a laptop without any kind of numeric keyboard (even not one accessed by FN)?

Right now I am using the NT 4 charmap (the XP one sucks), but does anyone know of a more efficient way?

marked as duplicate by DavidPostill, fixer1234, mdpc, Kevin Panko, Dave Feb 10 '15 at 8:30

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • So, you are using Windows XP? – iglvzx Dec 29 '11 at 20:38
  • @kinokijuf To me you picked a good way. find and 1 click as opposed to typing 4 things. What else could there be? Remapping, or creating shorts for some special charachters you use. using a International keyboard, or some super special OnScreenKeyboard that is better than the charmap. Having a big clipboard of whole "Words" to paste without retyping. What kind of thing were you thinking would be better? How about keys that work like texting on the phone? hold them down and they change to the accented version of them ? – Psycogeek Dec 29 '11 at 20:49
  • @Psycogeek: But I’m more of a keyboarder. – kinokijuf Dec 29 '11 at 22:46
  • ergonis.com/products/popcharx/features.html#Anchor-SearchField ?? there is one programmers idea of simpler. – Psycogeek Dec 30 '11 at 0:48
  • @Psycogeek: what made you think I am using OSX? – kinokijuf Dec 30 '11 at 19:01

This can be achieved with an AutoHotkey script.

The script


How it works

The line <!1::Numpad1 simulates pressing the key 1 on the numeric keypad when the key combination on the left side of :: is pressed.

Here, <! represents the left Alt key and 1 the key 1.

As a result, pressing you can use the "regular" as if they were on the numeric keypad.


  • If your keyboards has two Alt keys (rather than an AltGr key), you can make this work with the right Alt key as well. It suffices to remove all < characters.

  • The line <!+::NumpadAdd is only needed if you want to type Unicode characters using hexadecimal codes.

How to use

  1. Download and install the latest version of AutoHotkey.

  2. Save the above script as numpad.ahk, using your favorite text editor.

  3. Double-click the file to run the script.

  4. If you wish, copy the script (or a link to it) in the Startup folder.

  • Sweet! I tried to replace the <! with a <^>! to use AltGr instead of AltLeft but it won't work. Any idea why? – CAFxX Jul 17 '12 at 9:37
  • @CAFxX: That works as far as mapping 1 to Num1 goes. The problem is that you're still pressing the AltGr key, not Alt alone (which wouldn't work with the real numpad either). There might be a way around it, but I can't see it. You could post a new question. – Dennis Jul 17 '12 at 13:31

I tried the Unicode IME, and it works. Now I have to remember all the codepoints.

Unicode IME for Windows XP

You need to open the appropriate part of Control-Panel, In WIn-7 it is something like

  • Open Control Panel
  • Choose Region and Language
  • Choose Keyboards and Languages,
  • click Change Keyboards
  • Select Keyboard

The linked page (dated 2005) describes (presumably for XP)

  • Open Add Input Language
  • Choose Input Language = Chinese (Taiwan)
  • Select Keyboard Layout/IME = Chinese (Traditional) - Unicode

(Details obviously vary between Windows versions)

The linked page continues

Simple to use -- just switch to it with and start typing hex numbers in any application....
and then when you type a full Unicode code point, it will commit the character automatically!

Unicode IME for Windows Vista and Windows 7

The official Microsoft "Unicode IME" described above was removed in Vista and is not present in Windows 7.

An MSDN Blog has some instructions for Adding back a Unicode IME - but it seems to have been a work in progress at that time.

I have installed this Unicode IME under Windows-7 64-bit and it works well.

To install the IME, you

  • copy a text file defining the IME into \Program Files\Windows NT\TableTextService and then
  • open a command prompt with elevated privileges,
  • cd to the above directory and
  • type rundll32 TableTextService.dll RegisterProfile TableTextServiceUnicode.txt
  • clicking OK on the confirmation dialogue.
  • Then you can follow the instructions at the top of this answer to enable this IME.

Using the Unicode IME

You press Left Alt+Shift to switch to Unicode IME (or back again). The cursor shape changes to an underscore and the keyboard icon in the system notification area changes accordingly. If you then type four hex digits into Notepad (or other application?), the Unicode character for that Unicode code-point is inserted.

IME Definition

Below is the start and end of the IME text-file definition, The copyright/licence for the original is not clear but it appears to be intended to be freely available.

Description="Unicode IME"
Display Description="Unicode IME"





KeystrokeFile ="%programFiles%\Windows NT\TableTextService\TableTextServiceUnicode.txt"
DictionaryFile="%programFiles%\Windows NT\TableTextService\TableTextServiceUnicode.txt"

VK_1,          0  = INPUT        // 1
VK_2,          0  = INPUT        // 2
VK_3,          0  = INPUT        // 3
VK_4,          0  = INPUT        // 4
VK_5,          0  = INPUT        // 5
VK_6,          0  = INPUT        // 6
VK_7,          0  = INPUT        // 7
VK_8,          0  = INPUT        // 8
VK_9,          0  = INPUT        // 9
VK_0,          0  = INPUT        // 0
VK_A,          0  = INPUT        // A
VK_B,          0  = INPUT        // B
VK_C,          0  = INPUT        // C
VK_D,          0  = INPUT        // D
VK_E,          0  = INPUT        // E
VK_F,          0  = INPUT        // F

"0020" = " "
"0021" = "!"
"0022" ="
"0023" = "#"
"0024" = "$"
"0025" = "%"
"0026" = "&"
"0027" = "'"
"0028" = "("
"0029" = ")"
"002a" = "*"
"002b" = "+"
"002c" = ","
"002d" = "-"
"002e" = "."
"002f" = "/"
"0030" = "0"
"0031" = "1"
"0032" = "2"
"0033" = "3"
"0034" = "4"

middle part removed for brevity (and because copyright unclear)

"ffeb" = "→"
"ffec" = "↓"
"ffed" = "■"
"ffee" = "○"
"fff9" = ""
"fffa" = ""
"fffb" = ""
"fffc" = ""
"fffd" = "�"
  • Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. – Der Hochstapler Nov 5 '12 at 11:27
  • I have updated kinokijuf's answer for Windows 7 – RedGrittyBrick Nov 5 '12 at 12:17

Not the answer you're looking for? Browse other questions tagged or ask your own question.