The values associated with keys are in modern computers interpreted by the OS. The keyboard only submits scan-odes indicating which key has been pressed and whether a modifier key such as the Shift key or Alt key or Control key is also pressed.
See http://en.wikipedia.org/wiki/Scancode .
An internal table matches the scancodes to the character code in whatever character set has been set by the user as the default character set. On modern PCs, there may be up to three default character sets used by the operating system at once. There is the DOS character set, of which there are a number. It is used in a DOS window. There is the OEM Windows character set used in Windows applications which only use old Windows character sets. There are also a number of these. And there is Unicode, which is used in applications which understand Unicode.
No characters are hard-coded in monitors any more. Monitors display graphic bitmaps which are created by the operating systems and these may contain characters taken from fonts. The screen on which you are reading this is such a bitmap, created by your browser in memory and then displayed on the monitor.
When you type an “a” using the keyboard, the operating system matches the scancode produced to the current character set and produces whatever character matches in that set. If the computer is set up normally so that the character set matches the keyboard, it will be character 97 (decimal). If the cursor is active in a window set up for normal typing, then the operating system will take the shape of the character from whatever has been set up as the current font in that window and will print it at the current size in the current color and so forth.
“Now this value is converted to binary form.”
No it isn’t. Normally all numbers in a computer are stored in binary form from the beginning. They are usually converted to hexadecimal or decimal (or even octal) for display purposes only. They are not used as numbers in computer operating systems in the decimal formats used in various languages.
“If I am using non-english language, do non-english letters get identified immediately when letter is typed on keyboard?”
You can download and install various keyboard drivers and switch between them. You can create your own keyboard drivers. See http://www.alanwood.net/unicode/utilities_fonts_mac.html#unicodekeyboards for a number of utilities that can modify or create keyboard drivers. Note that keyboard drivers are specific to an operating system. One that works under Windows will not work on the Macintosh or under Linux. You can assign any scancode to any Unicode code point. Whether that code point is normally used for a modern English character doesn’t matter at all.
If you wanted to type in a rare script like the ancient Mayan script which is not yet supported by Unicode, you would have to use a special font in which each character was unofficially assigned to a Unicode code point. Unicode contains a large number of “private use” characters just for such purposes. But there are no guarantees that the same Unicode code point may not be used for entirely different characters in different fonts. All private use assignments are unofficial. The characters are displayed the same way that any characters are displayed. The application displays the character from the associated font according to its assigned code point.
“If am creating a new encoding for such alphabets, how do I incorporate it in the existing system?”
You create a font which has the characters assigned to private use Unicode code points, and on your web page you would usually indicate that a user who wants to see your text should download and install your font. You may also provide a keyboard driver to download to make typing in that font easier.
This was also the standard way of doing it, before Unicode, only there were no private-use characters and any new characters were of necessity assigned to the same code points as already existing characters. Compare fonts like Symbol and Wingdings that use this old technology and which mostly do not work on modern browsers which only support Unicode and old-style official encodings, not the idiosyncratic encodings of non-Unicode symbol fonts. See http://www.alanwood.net/demos/wingdings.html . See http://www.iana.org/assignments/character-sets for the official IANA registry of character sets that may be used on the web. See http://en.wikipedia.org/wiki/Internet_Assigned_Numbers_Authority for information on IANA.
Now, of course, Unicode supports most living languages and even many dead languages in part and for such languages, it is silly not to use Unicode except for special purposes. See http://users.teilar.gr/~g1951d/ for a number of free fonts that mostly support dead languages and symbols using official Unicode values.
See http://en.wikipedia.org/wiki/ConScript_Unicode_Registry for an unofficial attempt to map the private-use characters in Unicode so that at least the scripts do not overlap one another. See http://en.wikipedia.org/wiki/Tengwar for how Tolkien`s invented tengwar scripts are seen on computers.
A server needs to know nothing about what any of your characters actually mean. Neither does a web-page. Similarly a phone switch-board needs know nothing about the languages that people are speaking on the calls that pass through it.
A difficulty is that some operating systems and applications do not support private-use characters. See, for example, some problems with Windows 7 recorded here: http://babelstone.blogspot.com/ .
“... alphabets of English or other well known languages have ASCII values assigned to them.”
ASCII, used as a character set by itself, is obsolete. It is now normally used only as part of larger character sets. The first 128 characters of Unicode are the ASCII characters. Russian, Greek, Chinese, Japanese, Vietnamese, Korean, Thai, Arabic, and Hebrew are well-known languages but do not mostly use ASCII characters, even though ASCII characters are included in some character sets for these languages. Even in pre-Unicode days they had character sets supported by browsers. Nowadays, Unicode is available, containing all the characters normally used in all these languages in one large character set, and characters used in many other languages, each character with its own unique value. Today many scripts are only supported by Unicode (and compatible character sets). The days of incompatible character sets are drawing to a close.
For Unicode specifications, see http://www.unicode.org/versions/Unicode5.2.0/ and http://www.joelonsoftware.com/articles/Unicode.html and http://czyborra.com/unicode/characters.html .
See http://www.unicode.org/charts/ for the official Unicode charts of charts that cover all current Unicode characters. Unicode 6.0 is scheduled to replace Unicode 5.2 later this month, with even more characters and supported languages.
For various character sets that are in use or have been in use, see http://www.i18nguy.com/unicode/codepages.html .