This library provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard.
It consists of the following parts:
elementary string functions
conversion from/to legacy encodings
formatted output to strings
character classification and properties
string width when using nonproportional fonts
grapheme cluster breaks
line breaking algorithm
normalization (composition and decomposition)
regular expressions (not yet implemented)
libunistring is for you if your application involves non-trivial text processing, such as upper/lower case conversions, line breaking, operations on words, or more advanced analysis of text. Text provided by the user can, in general, contain characters of all kinds of scripts. The text processing functions provided by this library handle all scripts and all languages.
libunistring is also for you if your application uses Unicode strings as internal in-memory representation.