libunicode - UTF-8 to UTF-32 conversions and various operations

This small module implements basic functions to convert strings between UTF-8 and UTF-32. It also implements functions to determine character classes (such as letter, numerics or spaces).

The API does not use any dynamic allocation and only requires C99.

// Checking classes.
printf("%d\n", uni_isletter(U'A'));     // 1.
printf("%d\n", uni_isletter(U'2'));     // 0.
printf("%d\n", uni_isletter(U'รง'));     // 1.

// Converting UTF-32 to UTF-8.
uint32_t array[] = {...};
uint8_t str[100];

uni32_to8(array, str, sizeof (str));


Official releases

Development version

You can install a development version using Mercurial

hg clone


Build using standard POSIX make tools, see for more details.

make install


See available manual pages: