So far we've accounted for a little over 300 of the more than 90,000 Unicode characters. Many thousands are still unaccounted for. Outside the ranges defined in XHTML and SGML, standard entity names don't exist. You should either use an editor that can produce the characters you need in the appropriate character set or you should use character references. Most of the 90,000-plus Unicode characters are either Han ideographs, Hangul syllables, or rarely used characters. However, we do list a few of the most useful blocks later in this chapter. Others can be found online at http://www.unicode.org/charts/ or in The Unicode Standard 4.0 by the Unicode Consortium (Addison Wesley).
In the tables that follow, the upper lefthand corner contains the character's hexadecimal Unicode value, and the upper righthand corner contains the character's decimal Unicode value. You can use either value to form a character reference so as to use these characters in element content and attribute values, even without an editor or fonts that support them.
The128 characters in the Latin Extended-A block of Unicode are used in conjunction with the normal ASCII and Latin-1 characters. They cover most European Latin letters missing from Latin-1. The block includes various characters you'll find in the upper halves of the other ISO-8859 Latin character sets, including ISO-8859-2, ISO-8859-3, ISO-8859-4, and ISO-8859-9. When combined with ASCII and Latin-1, this block lets you write Afrikaans, Basque, Breton, Catalan, Croatian, Czech, Esperanto, Estonian, French, Frisian, Greenlandic, Hungarian, Latvian, Lithuanian, Maltese, Polish, Provençal, Rhaeto-Romanic, Romanian, Romany, Sami, Slovak, Slovenian, Sorbian, Turkish, and Welsh. See Table 27-7.
The Latin Extended-B block of Unicode is used in conjunction with the normal ASCII and Latin-1 characters. It mostly contains characters used for transcription of non-European languages not traditionally written in a Roman script. For instance, it's used for the Pinyin transcription of Chinese and for many African languages. See Table 27-8.
Linguists use the International Phonetic Alphabetic (IPA) to identify uniquely and unambiguously particular sounds of various spoken languages. Besides the symbols listed in this block, the IPA requires use of ASCII, various other extended Latin characters, the combining diacritical marks in Table 27-11, and a few Greek letters. The block, shown in Table 27-9, only contains the characters not used in more traditional alphabets.
The Spacing Modifier Letters block, shown in Table 27-10, includes characters from multiple languages and scripts that modify the preceding or following character, generally by changing its pronunciation.
The Combining Diacritical Marks block contains characters that are not used on their
own, such as the accent grave and circumflex. Instead, they are
merged with the preceding character to form a single glyph. For
example, to write the character Ñ, you could type the ASCII letter N
followed by the combining tilde character, like this: Ñ
. When rendered, this
combination would produce the single glyph Ñ. In Table 27-11, the character
to which the diacritical mark is attached is a dotted circle ◌ (Unicode code point &0x25CC;
), but of course it could be
any normal character.
For compatibility with legacy character sets, there is often
more than one way to write accented characters. For example the
letter é, e with accent acute, can either be written as the single
character 0xE9
or as the letter e
(0x65
) followed by a combining
accent acute (0x301
). This can be
a problem for naïve algorithms for searching, sorting, indexing, and
performing other operations on text. It's also an issue for XML. For
instance, the <resumé>
start-tag cannot be matched with a </resumé>
end-tag if one uses
character 0xE9
and the other uses
0x65
followed by 0x301
. Where such multiple ways of writing
the same character exist, the W3C strongly recommends using the
precomposed form; that is, you should use the single character
instead of the base character followed by a combining diacritical
mark. In XML, these marks are primarily intended for forming
characters that do not have precomposed forms.
The Greek block of Unicode is used primarily for the modern Greek language. Currently, it's the only option for the Greek-derived Coptic script, but it doesn't really serve that purpose very well, and a separate Coptic block is a likely addition in the future. Extending coverage to classical and Byzantine Greek requires many more accented characters, which are available in the Greek Extended block, shown in Table 27-22, or by combining these characters with the Combining Diacritical Marks in Table 27-11. The Greek alphabet is also a fertile source of mathematical and scientific notation, although some common letters, such as and ∑, are encoded separately in the Mathematical Operators block in Table 27-27 and the Mathematical Alphanumeric Symbols block in Table 27-28 for their use as mathematical symbols. The Greek and Coptic block of Unicode is shown in Table 27-12.
While the Cyrillic script, shown in Table 27-13, is most familiar to Western readers from Russian, it's also used for other Slavic languages, including Serbian, Ukrainian, and Byelorussian, and for many non-Slavic languages of the former Soviet Union, such as Azerbaijani, Tuvan, and Ossetian. Indeed, many characters in this block are not actually found in Russian but exist only in other languages written in the Cyrillic script. Following the breakup of the Soviet Union, some non-Slavic languages, such as Moldavian and Azerbaijani, are now reverting to Latin-derived scripts.
The Armenian script, shown in Table 27-14, is used for writing the Armenian language, currently spoken by about seven million people around the world.
The Hebrew abjad, shown in Table 27-15, is used for Hebrew, Yiddish, and Judezmo. It's commonly used for Phoenician as well, but the Phoenician and Hebrew abjads are arguably different, and a separate Phoenician block is a likely addition in the future. The Hebrew script is also occasionally used for mathematical notation.
The Arabic script, shown in Table 27-16, is used for many languages besides Arabic, including Kurdish, Pashto, Persian, Sindhi, and Urdu. Turkish was also written in the Arabic script until early in the twentieth century when Turkey converted to a modified Latin alphabet.
The Devanagari script is used for many languages of the Indian subcontinent, including Awadhi, Bagheli, Bhatneri, Bhili, Bihari, Braj Bhasa, Chhattisgarhi, Garhwali, Gondi, Harauti, Hindi, Ho, Jaipuri, Kachchhi, Kanauji, Konkani, Kului, Kumaoni, Kurku, Kurukh, Marwari, Mundari, Newari, Palpa, and Santali. It's also used for the classical language Sanskrit. See Table 27-17.
The Thai script is used for Thai and several other Southeast Asian languages, including Kuy, Lavna, and Pali. See Table 27-18.
The Tibetan script is used to write the various dialects of Tibetan and Dzongkha, Bhutan's main language. Like Chinese, Tibetan is divided into mutually unintelligible spoken languages, although the written forms are identical. See Table 27-19.
The Ethiopic script is used by several languages in Ethiopia, including Amharic, Tigre, Oromo, and the liturgical language Ge'ez. See Table 27-20.
The Latin Extended Additional characters are single code-point representations of letters combined with diacritical marks. This block is particularly useful for modern Vietnamese. See Table 27-21.
The Greek Extended block, shown in Table 27-22, contains mostly archaic letters and accented letters that are used in classical and Byzantine Greek but not in modern Greek.
The General Punctuation block, shown in Table 27-23, contains
punctuation characters used across a variety of
languages and scripts that are not already encoded in Latin-1.
Characters 0x2000
through
0x200B
are all varying amounts of
whitespace ranging from zero width (0x200B
) to six ems (0x2007
). 0x200C
through 0x200F
and 0x206A
through 0x206F
are nonprinting format characters
with no graphical representation.
The Currency Symbols block includes a few monetary symbols not already encoded in other blocks, such as the Indian rupee, the Italian lira, and the Greek drachma. See Table 27-24.
The Letter-Like Symbols block covers characters that look like letters but really aren't, such as the ℞ symbol used to represent a prescription. See Table 27-25.
The Arrows block contains commonly needed arrow characters, as shown in Table 27-26.
The Mathematical Operators block, shown in Table 27-27, contains a wide variety of symbols used in higher mathematics. A few of these symbols superficially resemble letters in other blocks. For instance, in most fonts, character 2206, , is virtually identical to the Greek capital letter delta. However, using characters in this block is preferable for mathematical expressions, as it allows software to distinguish between letters and mathematical symbols. Fonts may use the same glyph to represent different code points in cases like this.
Unicode 3.1 added one more block of mathematical alphanumeric
symbols in Plane 1 between 0x1D400
and 0x1D7FF
, as shown in Table 27-28. Mostly these
are repetitions of the ASCII and Greek letters and digits in what
would normally be considered font variations. For instance, 0x1D400
is mathematical bold capital
A. The justification for these is
that when used in an equation, they really aren't the same
characters as the equivalent glyphs in text.
The Miscellaneous Technical block, shown in Table 27-29, contains an assortment of symbols taken from electronics, quantum mechanics, the APL programming language, the ISO-9995-7 standard for language-neutral keyboard pictograms, and other sources.
The Optical Character Recognition (OCR) block, shown in Table 27-30, includes the OCR-A characters that are not already encoded as ASCII and magnetic-ink character-recognition symbols used on checks.
The Geometric Shapes block combines simple triangles, squares, circles, and other shapes found in various character sets Unicode attempts to superset. See Table 27-31.
The Miscellaneous Symbols block contains mostly pictographic symbols found in vendor and national character sets that preceded Unicode. See Table 27-32.
The Dingbats block, shown in Table 27-33, is based on characters in the popular Adobe Zapf Dingbats font.