This surprisingly critical issue gets slighted in most application development texts. Normally, it comes up in discussions of multiple-language support, but even if you target only English-speaking users, you’ll run into encoding when multiple platforms are taken into account.
In its simplest form, ASCII text is a slightly more elaborate version of the simple “secret decoder” that kids play with. The decoder rings would let you map a letter to a number, and you would need the right decoder rings to convert a string of text to numbers (and back to text). ASCII defines a standard set of characters that convert to numbers, with uppercase and lowercase letters, numbers, spaces, and a few extra symbols thrown into the mix.
That said, only seven bits of a number are defined. The eighth bit,
often called the
bit, is unspecified.
Some systems, such as the Apple II series or the Commodore PET line,
use these so-called high-bit characters to generate
graphics onscreen. For
example, the high-bit letter “r”
might draw a smiley face character. There are many high-bit encodings
with systems sold to non-English-speaking users who need extra
characters for certain languages. Other non-English systems throw out
ASCII entirely and use their own character encodings.
When the original Macintosh was released, graphics could be drawn in multiple fonts simultaneously. The smiley face character (and all of its friends) was moved to the Dingbats fonts. Normal user fonts, such as Times, ...