### Function

# GLib utf8_validate

#### Declaration [src]

    gboolean
    g_utf8_validate (
      const gchar* str,
      gssize max_len,
      const gchar** end
    )

#### Description [src]

Validates UTF-8 encoded text.

`str` is the text to validate; if `str` is nul-terminated, then `max_len` can be `-1`, otherwise `max_len` should be the number of bytes to validate.

If `end` is non-`NULL`, then the end of the valid range will be stored there. This is the first byte of the first invalid character if some bytes were invalid, or the end of the text being validated otherwise — either the trailing nul byte, or the first byte beyond `max_len` (if it’s positive).

Note that `g_utf8_validate()` returns `FALSE` if `max_len` is positive and any of the `max_len` bytes are nul.

Returns `TRUE` if all of `str` was valid. Many GLib and GTK routines require valid UTF-8 as input; so data read from a file or the network should be checked with `g_utf8_validate()` before doing anything else with it.

#### Parameters

`str`

  Type: An array of `guint8`

  A pointer to character data.

  The length of the array is specified in the `max_len` argument.
  The data is owned by the caller of the function.

`max_len`

  Type: `gssize`

  Max bytes to validate, or `-1` to go until nul.

`end`

  Type: An array of `guint8`

  Return location for end of valid data.

  The argument will be set by the function.
  The argument can be `NULL`.
  The array must be `NULL`-terminated.
  The returned data is owned by the function.

#### Return value

Type: `gboolean`

`TRUE` if the text was valid UTF-8.