Each letter on the keyboard corresponds to a number that has been assigned to it called a scan code. The operating system software maps this scan code to a Unicode, so when a particular scan code is typed, it knows which character to use.
Unicode is just a standard that allows the computer to associate each character with a number that never changes. This number is different from the scan code, and there are enough numbers in Unicode to assign numbers to the characters in many different languages.
The actual display of the character is carried out with a "font." In its simplest terms, a font just tells the computer which pixels to turn on or off for a given character.
I'm currently writing code on an arduino to display text on a little 128x64 oLed display. While getting a single pixel to light up, I realized how complicated and time consuming it must be to define a set of pixels in bits/bytes that, for instance, represents the character 'a'. I know a computer does it well but I don't understand what data is stored, how it is accessed, so that the character can be displayed at an arbitrary position.
– Minh Tran Dec 21 '15 at 00:43I have a display on which I can put an arbitrary pixel. I can probably create a data structure to store bitmap images of characters (and therefore a character set/arbitrary symbols). But suppose I wanted to display the bitmap image of the letter A rotated 35 degrees clockwise. How do I do such a transformation?
– Minh Tran Dec 21 '15 at 00:51