Function

GLibUriunescape_bytes

Declaration

GBytes*
g_uri_unescape_bytes (
  const char* escaped_string,
  gssize length,
  const char* illegal_characters,
  GError** error
)

Description

Unescapes a segment of an escaped string as binary data.

Note that in contrast to g_uri_unescape_string(), this does allow nul bytes to appear in the output.

If any of the characters in illegal_characters 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.66

Parameters

escaped_string

Type: const char*

A URI-escaped string.

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

Type: gssize

The length (in bytes) of escaped_string to escape, or -1 if it is nul-terminated.

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.
error

Type: GError **

The return location for an error.

The argument can be NULL.
The argument will be set to NULL by the function if there are no errors.
In case of error, the argument will be set and the caller will take ownership of the data, and be responsible for freeing it.

Return value

Type: GBytes

An unescaped version of escaped_string or NULL on error (if decoding failed, using G_URI_ERROR_FAILED error code). The returned GBytes should be unreffed when no longer needed.

The caller of the function takes ownership of the data, and is responsible for freeing it.