### Function

# GLib Uri unescape_string

since: 2.16

#### Declaration

    char*
    g_uri_unescape_string (
      const char* escaped_string,
      const char* illegal_characters
    )

#### Description

Unescapes a whole escaped string.

If any of the characters in `illegal_characters` or the NUL character appears as an escaped character in `escaped_string`, then that is an error and `NULL` will be returned. This is useful if you want to avoid for instance having a slash being expanded in an escaped path element, which might confuse pathname handling.

Available since: 2.16

#### Parameters

`escaped_string`

  Type: `const char*`

  An escaped string to be unescaped.

  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`illegal_characters`

  Type: `const char*`

  A string of illegal characters not to be allowed, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

#### Return value

Type: `char*`

An unescaped version of `escaped_string`. The returned string should be freed when no longer needed.

The caller of the function takes ownership of the data, and is responsible for freeing it.
The return value can be `NULL`.
The value is a NUL terminated UTF-8 string.