What character you get when you hold down the Alt key and enter a decimal number, all depends on your Windows version, the System Locale, the application and whether the specific input field supports Unicode.
Computers only know numbers, they are not aware of characters. That’s why character encodings exist; to map a character to a number (known as a codepoint). One of the fist encodings is the American Standard Code for Information Interchange (ASCII). It was first published as a standard in 1967 and is a (7 bit) character encoding that contains only 128 characters. There are 33 non-printing characters. They were initially used as control characters, but most of them are now obsolete. The remaining 95 characters are printing characters, starting with a space:
!"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
abcdefghijklmnopqrstuvwxyz{|}~
As you can see ASCII contains only unaccented English letters, so it isn’t suitable for most Western European languages which use diacritical marks (e.g. Dutch, French, etc.).
In the early 1980s Microsoft invented codepage OEM 437 for MS-DOS (CP437). It is a character encoding based on ASCII but additionally contains a few accented characters, box-drawing characters, several Greek characters and some mathematical symbols. CP437 is one of many extended ASCII character sets, but some people are not aware of this and misleadingly call it Extended ASCII (or high ASCII).
Microsoft later created several other codepages. One of them is Windows 1252 (CP1252), a compatible superset of ISO 8859-1 with extra characters in the ISO unused range. It supports English as well as several other Western European languages. Other codepages have support for a different set of languages, but none of them acted as a combined codepage with support for all these languages, not to speak of support for all modern and ancient languages, like Greek, Arabic and Asian languages.
In the end all these different codepages didn’t make life easier. Because different Operating Systems (and even the same Operating System with a different System Locale) use other encodings, compatibility issues are very common, especially with the enormous popularity of email and the Internet. Fortunately most encodings are based on ASCII, so usually English text (without accented characters, advanced punctuation and curly quotes) can be shared without worries.
Fortunately several large IT companies realized the need of a standard world-wide encoding and founded the Unicode Consortium. In 1992 they released the first version of the Unicode Standard. Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language. With the release of version 5 in 2006 there are more than 97,000 characters defined in the Unicode Character Database. All modern operating systems and applications support Unicode. This ensures all documents that contain Unicode text, can be shared among different platforms without compatibility issues.
Finally to answer your question.
We need to forget about codepages as soon as possible and focus on the world-wide supported encoding system, named Unicode. Unlike all other font managers, MainType is fully Unicode aware. In case you aren’t ready to adopt Unicode, just print the characters set of the codepage that you and your system use. You can find them here:
http://www.microsoft.com/globaldev/reference/WinCP.mspx
In Windows, the characters from your current codepage (e.g. CP1252) can be inserted by holding down the Alt key and entering a zero followed by the character’s decimal code on the numpad. (By omitting the zero one can enter characters from the older CP437 in this way.)
In recent versions of Microsoft WordPad and Word you can insert Unicode characters by holding down the Alt key and entering the character’s decimal Unicode codepoint on the numpad. For example when you type ALT-8364, the input field will show €. However if the input field doesn’t support Unicode input through this method, you will probably see ¼ (8364 mod 256 = 172).
Another way to input Unicode characters is the hexadecimal entry method that works with WordPad (2000, XP and higher) and Microsoft Word (2002 and higher). probably more applications will follow soon. Basically you type a character’s hexadecimal code (in ASCII), making corrections if needed, and then type Alt+X. This will replace the hexadecimal code by the corresponding Unicode character. The same key combination Alt+X can be used to reveal a characters code. If the hexadecimal code is preceded by one or more hexadecimal digits, you need to “select” the code so that the preceding hexadecimal characters aren’t included in the code. The code can range up to the value 0x10FFFF, which is the highest character in the 17 planes of Unicode.
I prefer to use MainType. I have customized it so it minimizes to the System tray whenever I close it. Every time I need it I double-click on the icon and MainType is there again. To do this, select Options from the Tools menu and then check “On close minimize to System Tray”.
Hope this helps.