## Unicode Manipulation

Unicode Manipulation — functions operating on Unicode characters and UTF-8 strings.

## Synopsis

    #include <libxfce4util/libxfce4util.h>

    gchar *             xfce_utf8_remove_controls           (gchar *str,
                                                             gssize max_len,
                                                             const gchar *end);
    gchar *             xfce_utf8_strndup                   (const gchar *src,
                                                             gssize max_len);

## Description

## Details

### xfce_utf8_remove_controls ()

    gchar *             xfce_utf8_remove_controls           (gchar *str,
                                                             gssize max_len,
                                                             const gchar *end);

Removes all control characters from `str` up to `end` or up to `max_len` characters (note that characters does not mean bytes with UTF-8), where both `str` and `max_len` may not be given.

Control characters are replaced in `str` by whitespaces, no new string will be allocated. The operation is done in-place.

`str` : | target string.
`max_len` : | max characters to check or -1 for no character limit.
`end` : | pointer to the endpoint in `str` or `NULL` for no endpoint.
Returns : | pointer to `str` or `NULL` on error.

Since 4.2

### xfce_utf8_strndup ()

    gchar *             xfce_utf8_strndup                   (const gchar *src,
                                                             gssize max_len);

Duplicates the `src` string up to `max_len` characters (note that characters does not mean bytes with UTF-8).

The caller is responsible to free the returned string using `g_free()` when no longer needed.

`src` : | target string.
`max_len` : | max characters to duplicate or -1 for no character limit.
Returns : | pointer to the newly allocated string.

Since 4.3

## See Also

Glib Unicode Manipulation