|The ZUnicode namespace defines a collection of data types and functions for working with Unicode data. |
"The Unicode Standard Version 3.0" (Addison-Wesley, ISBN 0-201-61633-5) is an essential reference.
In working with Unicode data it is crucial to understand the distinction between code points and code units. A clear discussion is at Unicode Technical Report #17, Character Encoding Model. In ZooLib a Unicode code point is an integer in the range 0-0xD7FF or 0xE000-0x10FFFF that represents the corresponding character as defined by Unicode and ISO 10646. This requires at least 21 bits of space, and is most conveniently manipulated in a 32 bit integer.
A code unit may be large enough to hold an arbitrary code point, but generally more than one code unit may be required.