The Unicode Standard, Version 2.0 (TUS2.0) provides different
ways to encode accented characters, either decomposed (a
combining character sequence [CCS]) or composed (as a single
precomposed character). For example, the following are
equivalent: |Ã||A + ~| The TUS2.0 specifies an algorithm for
determining whether any two sequences of Unicode characters are
canonical equivalent (see TUS2.0, pages 3-9 through 3-10). This
algorithm basically decomposes any precomposed characters, then
sorts them according to special rules, based on each character's
combining class. This produces a normalized form. Two common
functions on Unicode text are to fully decompose the text (as
far as possible), and to fully compose the text (as far as
possible). In both cases, the correct result can only be
achieved if the text is first converted to a normalized form.
The following describes mechanisms for composing and decomposing
Unicode text that do not require fully normalizing the text, and
yet produce the correct results. By avoi