### Text Creation and Manipulation

The primary interfaces you need to create and manipulate Unicode text strings, whether styled or unstyled, are provided by IText. It gives you access to the storage mechanism and provides a complete set of protocols for accessing and manipulating both the character and the style data. IText is designed so that you can use it to store unstyled text without the reduction in performance or increase in memory requirements that may be associated with the styling mechanism.

You can create an IText object from another IText, from an IString, or from an array of `char` or `UniChar`. When you convert between IText and a `char`-based format, the data is transcoded. The conversion functions assume the `char`-based format is ISO 8859-1.

The IText interface parallels the API provided by the ANSI C++ class `basic_string`. It includes functions for converting between string formats, for manipulating styles, and for working efficiently with the IText storage mechanism.

This figure is a partial listing of the IText interface:

IText also supports the `basic_string` interfaces for simple searching and comparison. These functions perform simple bitwise comparisons, and ignore styling information. For language-sensitive comparison of IText strings, use the International Framework's collation classes.

This figures shows the IText interfaces for searching and comparison:

Collation Classes
Transcoding Classes
Identifying Text Boundaries
String Formats